コンソールなしでリモートコンピュータからファイルを転送する

コンソールなしでリモートコンピュータからファイルを転送する

リモートサーバーAからサーバーBにファイルを転送する必要がありますが(ターミナル(パテ)を使用してBにログイン)、この操作はバックグラウンドでも実行する必要があります(ターミナルを閉じて終了できるように)。私が試したことは、puttyを使用してターゲットコンピュータBにログインし、rsyncコマンドを実行することです。

rsync -azvv -e ssh root@A:/home/some_path /home/target_local_path/

ただし、パテを閉じるとプロセスも中断されます。

答え1

画面はどうですか?

screen - VT100/ANSI端末エミュレーションを含むスクリーンマネージャ

画面のある端末を開きます。

コマンドを実行するには端末を閉じます。

必要に応じて再接続できます。

答え2

これらのタスクのデフォルトの選択は古くなっています。nohupコマンドコマンドの前に;nohup接頭辞がある場合は、端末を閉じた後もコマンドが続行されます。

nohup rsync -azvv -e ssh root@A:/home/some_path /home/target_local_path/

rsync が完了する前にウィンドウを閉じると、その出力の残りの部分がnohup.outrsync を起動したディレクトリに指定されたファイルに書き込まれます。

ただし、rsyncを起動してログアウトする前に他のタスクを実行するには、コマンドラインの&最後に追加してバックグラウンドで実行するようにしてください。この場合、rsyncは後続のコマンドを妨げる出力をエクスポートするため、その出力もファイルにリダイレクトする必要があります。

nohup rsync -azvv -e ssh root@A:/home/some_path /home/target_local_path/ > rsync.log 2>&1 &

関連情報