を使用して大きなファイルをコピーしているのですscp
が、コピー先にコピーを完了するのに十分なスペースがない可能性があることに気付きました。コピーを一時停止し、数時間後に再開する方法はありますか? また、コピーが失敗した場合 ( no space left on device
)、スペースを空けたら再開できますか?
(scp
すでに実行されていることに注意してください。別のプログラムを使用するなどの解決策は機能しません。)
答え1
SIGSTOP を使用してプロセスを一時停止し、後で SIGCONT を使用してプロセスを続行できます。(kill -l
シグナルのリストについては を参照し、ps
プロセス ID を取得するには を使用します)。
ただし、これが機能しない可能性も十分にあります。たとえば、送信元と送信先の間に、デッド接続を検出して「クリーンアップ」するルーターがある場合などです。ほとんどの SOHO ルーターは、接続をクリーンアップするとメモリ使用量が少なくなるため、これを実行するようです。(そのため、より安価なルーターを構築できます)。
そのような場合は、scp を使用して再度コピーするか、rsync を使用する必要があります。
Rsyncには、既存のファイルを比較し、不必要なデータをコピーしないという利点があります。あなたの場合、すでに存在する部分的にアップロードされたファイルを検出し、ファイルの残りの部分のみをアップロードするはずです。
構文は次のようになりますrsync -v -e ssh /home/my_file [email protected]:~
-v は詳細表示です。 -e "ssh options" は ssh をリモート シェルとして指定します。
データが圧縮可能な場合は、-z
データを圧縮するために追加することをお勧めします。