0

リモートコマンドを実行し、出力をローカルファイルにリダイレクトするスクリプトがあります。

リモート コマンドは、pcap ファイルのリストを継続的に読み取り、stdout に書き込みます。

最終的なコマンドは次のようになります -

ssh root@host /sbin/path-to-utility | cat > local-file

このリモート コマンドを実行するスクリプトには、転送全体の状態を保存するためのシグナル ハンドラが必要です。

また、リモートコマンドまたはプロセスにシグナルを送信して、pcapファイルの読み取りを停止し、現在のファイルの書き込みが終了した後に終了したいと考えています。

-t オプションを試してみたところ、シグナル処理は問題なく動作しましたが、リモート コマンドによって書き込まれた実際の出力に余分な文字が追加され、pcap データが乱れました。

ssh で -t オプションを使用せずにシグナルを処理する必要があるか、ssh -t が実際のデータに追加のバイトを追加している理由を調べる必要があります。

助けてください!

ありがとう、

サチン。

4

1 に答える 1

0

この-tオプションは、端末を割り当てるように ssh に指示します。余分な文字は、端末によって解釈されることを意図しています。

おそらく、ssh に別の端末を使用していることを伝える必要があります。これは、余分な文字を生成せず、シグナルを送信する端末です。これは機能しますか?

TERM=dumb ssh root@host /sbin/path-to-utility | cat > local-file

(TERM に使用する最適な値はわかりません。)

于 2012-04-05T16:54:33.907 に答える