0

UNIX パイプと FIFO:s (名前付きパイプ) を使用してコマンドを処理するパイプラインをセットアップしようとしています。

また、プロセスの出力を別の計算ノードに送信/ストリーミングしたいと考えていました。これは、データのストリームが到着するとすぐに処理を開始できます。つまり、「stdout を別のマシンのプロセスにパイプする」必要があります。 . どうやってやるの?

たとえば、バックグラウンドでコンテンツを他の計算ノードの FIFO などに書き込む FIFO をセットアップすることは可能ですか?

4

2 に答える 2

3

使用できますnetcat。この最小限の例では、次catnetcat使用して出力をパイプできます。

cat local-filename.txt | netcat remote-hostname 1234

ここ1234で、使用する TCP ポートを表します。受信側では、次を使用できます。

netcat -l 1234 > filename-on-remote-host.txt

ここで-l、サーバーをセットアップしていることを示します。この接続は、元の netcat プロセスが終了すると閉じられます。続行して次の接続を待つ必要がある場合は、次の-kオプションを使用できます。

netcat -kl 1234 | some-receiving-command

ncいずれにせよ、完全な の代わりに省略形を使用できますnetcat

nc -kl 1234 | some-receiving-command
于 2013-10-02T16:03:53.787 に答える
1

はい、可能sshです。この目的のために使用してください。のstdinssh他のホストに送信されます。たとえば、次を使用して別のサーバーにデータを送信するために使用できますtar

tar cvzf - data | ssh otherhost 'cd /tmp; tar xvzf -'
于 2013-10-02T15:32:13.343 に答える