web-dev-qa-db-ja.com

時間範囲内でファイルのグループをgrepする方法は?

ネットワークトラフィックの完全なパケットキャプチャを実行するバッファボックスで使用されるスクリプトを作成しようとしています。かなり大規模なネットワーク用であるため、キャプチャを100MBのセグメントに分割します。多くの場合、1分間にネットワークトラフィックが多い場合は、その期間をカバーする複数のpcapがあります。

ですから、私がやりたいのは、何かを検索しているアナリストが日付と時刻、およびファイルを検索するその両側の分数を指定できるbashスクリプトを用意することです。明らかに私はこのようなことをすることができます-

ls -al | grep "Dec  1" | grep 02:00
ls -al | grep "Dec  1" | grep 02:01

など、各結果を取得し、探している特定のキーワードについて各ファイルを個別にgrepしますが、時間範囲内に作成されたすべてのファイルをより広範囲に検索して、それぞれをgrepできるようにしたいと思います。キーワード。

私はそれを行う方法が完全にはわかりません、どんな助けもいただければ幸いです。

3
Steve

find -iname "" -mtime -7 -exec zgrep "" {} \;

たとえば

検索/ opt/WebSphere/AppServer/profiles/application/logs/-iname "SystemOut *" -mtime -7 -exec zgrep "FileNotFoundException" {} \;

過去7日間にSystemOutで始まるファイルのディレクトリ/ opt/WebSphere/AppServer/profiles/application/logs /内を検索し、StringFileNotFoundExceptionを検索します。

1
Vivek Vermani

find(GNU/Linux上)があなたのためにできる素晴らしいことのいくつか:

単位:

  • n正確にnuntis
  • -nn単位未満
  • +nn単位以上-

どうした:

  • -atime:前回アクセス
  • -ctimeファイル自体(権限、所有者、…)の変更であり、その内容ではありません
  • -mtimeファイルの内容が変更されました
  • -amin nn分年齢
  • -atime nn日(24時間)前
  • ctime/minmtime/minについても同じことが言えます)

したがって:

  • find -atime -30→最終アクセス日は30日以内
  • find -ctime +5→5日以上前、ファイル自体の変更
  • find -mtime +2 -31→ファイルの内容が2日以上31日以内に変更された

また--daystart:今日以降、0.00時間


グレッピング

findstuff-exec grep {} \;→;最後の部分({} \;)は必須です-{}\;の間の単一の空白に注意してください

-execオプションを使用すると、他のコマンドをfindに組み込むことができます。


また: なぜlsの出力を解析すべきではないのか

1
erch