.png)
私は自宅にあるすべての Unix デバイスを tar|pv|pigz|nc でローカル サーバーにバックアップする方法を設定しています。多くの例を見てきましたが、それらはすべて、最初に宛先マシンがポートをリッスンしている必要があります (たとえば、物理的にマシンにいる間、または ssh 経由で)。
nc -w 60 -l 19001 > /dir/to/backup.tgz
次に、現在のマシンからストリームの送信を開始します
tar -cpf - /dir/to/backup | pv | pigz | nc -w 10 dest.i.p.addr 19001
私はこれをスクリプト化して、このプロセス中にホストマシン上で複数のターミナルを開く必要がなくなり、ほぼワンクリックで実行できるようにしようとしています。通常、ssh経由でコマンドを送信すると、
ssh -f [email protected] "nc -w 60 -l 19001 > /dir/to/backup.tgz"
しかし、ポートが開いていて、データが転送され、受け入れられている間は、backup.tgz ファイルは作成されず、常に空として読み込まれます。このことから、ssh 経由でコマンドを 1 行で送信しても、リスニング ポートが開いたままにならないと考えられます。
表示されていない別のルートがあるのでしょうか、それとも、リスニング セッションを作成するには常に宛先マシンにログインする必要があるのでしょうか?