私が管理しているリソースを大量に消費するサイトのいくつかのために、近いうちに VPS サーバーを導入するつもりです。私が住んでいる国では、1Mb/s のインターネット速度は贅沢であり、途切れることのない電力供給は神話です。
私が達成しようとしていることは次のとおりです:
- SSH / SCP 経由でソース サーバーから宛先サーバーにコピーされたファイルとディレクトリを取得する方法。
- インターネットが切断されたり電源が切れたりしても、サーバー間でファイルをコピーし続ける方法。
- ターミナル ウィンドウを閉じても、両方のサーバー間でファイルをコピーし続ける方法。
SCP 経由でコピーすることは知っていますが、オフラインになると機能しなくなるようです。
答え1
rsync -azvP source_directory user@remote:remote_directory
中断された場合に進行状況を保存しながら、2 台のコンピューター間でファイルをコピーできるようになります。
各フラグの説明もここにあります。http://explainshell.com/explain?cmd=rsync+-azvP
ログインしていない状態でもサーバー上でこれを実行できるようにするには、上記のコマンドをコマンドに渡しますnohup
。また、これを tmux セッションで実行することもできます。その場合、マシンにログインしたときにセッションをアタッチして、進行状況を監視 (またはコマンドを再開) できます。
tmux
サーバー上で と入力して tmux セッションを開始できます。次に rsync コマンドを実行し、CTRL+b
と入力して tmux セッションから切断できますd
。ログアウトしてもコピー手順には影響しません。再度ログインすると と入力できtmux attach
、コピー操作の進行状況を表示できます。
これがお役に立てば幸いです。何かご不明な点がありましたらお知らせください。
答え2
rsync コマンドの使用を検討することを強くお勧めします。rsync コマンドは、転送を簡単に再開できるため便利です。rsync はデフォルトで SSH トランスポート経由で動作するため、クライアントとサーバーに rsync バイナリがあれば十分です。
Rsync はすでに転送されたものを検出し、転送されていないファイルとファイルの一部のみを転送します。
答え3
これで問題は解決すると思います:
nohup scp -r big-folder remote-machine:/home/user/ &
このコマンドはコピー プロセスを開始し、ログオフ後もコピーを続行します。