
我正在嘗試編寫一個在緩衝區盒上使用的腳本,該腳本可以對網路流量進行完整的資料包捕獲。由於這是一個相當大的網絡,我們將捕獲分成 100MB 的片段。當網路流量較高時,通常會超過一分鐘,我們將有多個 pcap 覆蓋該時間段。
所以我想要做的是有一個 bash 腳本,讓正在搜尋某些內容的分析師指定日期和時間,以及他們想要搜尋檔案的兩邊的分鐘數。顯然我可以做這樣的事情 -
ls -al | grep "Dec 1" | grep 02:00
ls -al | grep "Dec 1" | grep 02:01
依此類推,獲取每個結果並分別 grep 每個文件以查找我正在尋找的特定關鍵字,但我希望能夠對某個時間範圍內創建的所有文件進行更廣泛的搜索,然後 grep 每個文件關鍵字。
我不完全確定如何做到這一點,任何幫助將不勝感激。
答案1
find
一些(在 GNU/Linux 上)可以為您做的好事情:
單位:
n
確切地n尤蒂斯-n
少於n單位+n
多於n單位 -
發生了什麼事:
-atime
: 上次訪問過-ctime
: 更改於文件本身(權限、所有者…),而不是其內容-mtime
:文件的內容改變了-amin n
:n分鐘年齡-atime n
:n天(24 小時)前ctime/min
和也一樣mtime/min
)
因此:
find -atime -30
→ 上次造訪時間不到 30 天前find -ctime +5
→ 超過 5 天前,文件本身發生更改find -mtime +2 -31
→ 文件內容更改時間超過兩天但少於 31 天
另外 - -daystart
:今天之後 0.00 小時
格雷平
find
東西 -exec grep {} \;
→;最後一部分 ( ) 至關重要 - 請注意和{} \;
之間的單一空格{}
\;
這些-exec
選項允許將其他命令合併到find
答案2
find -iname "" -mtime -7 -exec zgrep "" {} \;
對於前
尋找 /opt/WebSphere/AppServer/profiles/application/logs/ -iname "SystemOut*" -mtime -7 -exec zgrep "FileNotFoundException" {} \;
它將在目錄 /opt/WebSphere/AppServer/profiles/application/logs/ 中尋找過去 7 天內以 SystemOut 開頭的文件,並尋找 String FileNotFoundException。