大きなファイルの SCP 転送が途中で失敗しても、途中から再開出来るようにする方法

大きなファイルの SCP 転送が途中で失敗しても、途中から再開出来るようにする方法

大きなファイルをネットワーク越しに SCP コマンドでコピーする場合、ネットワーク接続が切れてしまってコピーが失敗したりすると、また最初からファイルを転送し直す必要があります。

そのような場合、rsync コマンドと組み合わせることで、途中で失敗したファイル転送を再開することが出来ます。この方法を実行するには、コピー元のサーバーとコピー先のサーバーの両方に rsync コマンドをインストールしておく必要があります。




ファイルのコピー元のサーバーで以下のようなコマンドを実行すると、途中で失敗しても同じコマンドを実行することで、失敗したところからファイル転送を再開することが出来ます。

$ rsync --partial --progress --rsh=ssh $file_source $user@$host:$destination_file

$file_source はコピーしたいファイル名、$user はファイルのコピー先のユーザー名、$host はファイルのコピー先のサーバー、$destination_file はコピー先サーバーでのファイルを指定します。

以下はローカルサーバーからリモートサーバーにファイルをコピーし、失敗しても再度同じコマンドを実行することで、ファイル転送を途中から再開することが出来ます。

$ rsync --partial --progress --rsh=ssh $file_source $user@$host:$destination_file

また次のコマンドはリモートサーバーからローカルサーバーにファイル転送を行う方法です。

$ rsync --partial --progress --rsh=ssh $user@$host:$remote_file $destination_file