0

会社の UNIX ボックスにリモート接続し、特定のログ全体のセットを解析する必要がある割り当てに取り組んでいます。Grep と -C フラグを使用してこれを行う方法を見つけましたが、これらのマシンにインストールされている UNIX のバージョンはその機能をサポートしていません。私が検討した代替案の 1 つは、Cygwin を介してローカル マシンで作業を行い、ローカル バージョンの Grep を使用してこのタスクを処理することです。ただし、これらのログは特に大きく、50 メガバイト以上あり、ボックスへの接続が非常に遅いため、ダウンロードが完了するまでに数時間かかる場合があります。

私の主な質問は、SSH を介してリモート サーバーにリモート接続することは可能ですが、特定のプログラムのローカルにインストールされたバージョンを呼び出すことはできますか? たとえば、サーバーに SSH で接続する場合、リモート システムのバージョンの Grep ではなく、ローカル バージョンの Grep を使用できますか?

Awk と Sed を使用して同様のことを試みましたが、あまり成功していません。現時点では、長時間のダウンロードを除けば、他にどのようなオプションがあるかわかりません。何かアドバイス?前もって感謝します。:)

4

1 に答える 1

2

ローカル アプリケーションでリモート ファイルを使用できたとしても、ログ ファイル全体をダウンロードすることになります。 - ファイルをローカルの grep に送信するリモート マシンになります。

1 つの代替方法は、ログファイルを ssh 経由で送信する前に gzip することです。

ssh user@remotebox 'gzip -9 - logfile'|gzcat -|grep whatever

それでもログ ファイル全体を送信することになりますが、ログ ファイルは非常によく圧縮される傾向があるため、元のデータのごく一部しか送信できません (たとえば、圧縮されていない 50 メガに対して数メガ)。

または、別の方法として、リモート マシンに適切なコンパイラ ツールチェーンがあると仮定して、リモート マシンのソースから gnu grep をコンパイルしてみることができます。

于 2012-08-21T20:24:34.593 に答える