サーバー上のネットワーク トラフィックをログに記録するために tcpflow を使用しています。このデータをファイルに記録したいのですが、すべてではありません。監視プロセスは、バックグラウンドでデーモンとして無期限に実行されます。
ストリームの一部の行にはバイト カウントが含まれており、そのバイト カウント (たとえば 800 バイト) が表示された場合は、次の 800 バイトをファイルに記録する必要があります。そうでない場合は、ファイルに書き込みたくありません。
ログファイルに何をリダイレクトするかを決定するために、ストリームのこの種の「オンザフライ前処理」を行う最良の方法は何ですか? ストリームをリッスンしているある種の 2 番目のデーモン スクリプトは、そのスクリプトにパイプされますか?
例:
ストリームに次の行が表示されます。
1343932842: 010.079.091.189.35856-010.104.001.199.11211: set i:1:20163484235 0 0 1429
まず、「セット」があることを確認する必要があります。次に、行の最後の部分 (1429) を調べ、次の 1429 バイトを読み取り、それらをファイルに書き込みます。