特定のポートに到着するキーワードを含む特定のHTTP要求を記録したいと思います。tcpflow
うまくいきますが、フィルタ処理された結果を出力ファイルに書き込むことはできません。
このコマンドがなぜ完全に動作し(「Detect」が私が探しているキーワードなのか)、必要な行だけを表示するのはわかりません。
tcpflow -p -c -i eth0 port 80 | grep detect
同時に、これはまったく機能しません。 log.txtファイルが空です...
tcpflow -p -c -i eth0 port 80 | grep detect > log.txt
これがバイナリ出力に関連しているようですが?
これはうまくいきますが、巨大なファイルが生成されるためです(それほど多くのデータは必要ありません)。
tcpflow -p -c -i eth0 port 80 > log.txt
grep log.txt --text detect
プロパティでのみ動作し--text
(バイナリファイル形式については言及されていません)、数日後にファイルが非常に大きくなる可能性があります。
答え1
コメントありがとうございます Arkadiusz Drabczykに感謝します。次のデモで使用できます。
sudo tcpflow -i eth0 port 8080 -c | grep -A 50 "detect" --line-buffered > /tmp/tcpflow.log