grepを使用できる1つの端末の出力を別のサーバーに渡すにはどうすればよいですか?

grepを使用できる1つの端末の出力を別のサーバーに渡すにはどうすればよいですか?

特定のスイッチでtcpdumpを実行し、高度な正規表現を使用してgrepを介して渡す必要があります。そのスイッチシェルはかなり愚かで正規表現でgrepもありませんが、必要なオプションを含むtcpdumpがあります。

スイッチターミナルでtcpdumpを実行し、出力全体を別のLinuxシステム、つまりそのシステム上のファイルにパイプしてファイルをオンラインでgrepし、ライブセッションで何が起こっているかを確認する方法はありますか?

答え1

SSH経由でスイッチにアクセスできる場合は、単に次のことができます。

ssh switch 'tcpdump <args>' | grep <fancy pattern>

@DopeGhotiが提案したnetcatソリューションより(スイッチのCPUによって)少し遅くなるかもしれませんが、データは暗号化されて転送されます。作業中の環境とキャプチャするデータの感度によっては、影響がある場合とない場合があります。

答え2

スイッチが何をしているのか(パケットの移動)を切り替えて、netcatを使用してあるホストから別のホストにテキストを送信するのはどうですか?

TCPポート12345に送信するとします。リスナーホスト(remotehost.example.com例: ""):

$ nc -l 12345 | grep 'pattern'

送信ホストから:

$ /path/to/somejob | nc remotehost.example.com 12345

関連情報