scpやrsyncでstallする時の対処

* 本ページはプロモーションが含まれています

scpやrsyncで、インターネット越しにファイル転送すると、よくstallして、転送が失敗するときの対処法。

下記のように、scpやrsyncでファイル転送に失敗することがよく起きます。

$ scp ja_windows_server_2008_r2__x64_dvd_x15-50370.iso remote:/tmp/.
ja_windows_server_2008_r2__x64_dvd_x15-50370.   0% 7184KB   1.4MB/s – stalled –

転送する際に、MAXでPCが頑張ってしまい、途中で息切れしてしまうのが、stallする原因のようなので、転送速度に制限をかけます。

  • scpの場合
    -lのオプションを付けて、その後に、値を入力(単位はKbit/秒

    例: scp -l 600 xxxx.iso remote:/tmp/.

    600kb/sで転送します。(値は低い方が安定しますが、環境によって調整します)

  • rsyncの場合
    –bwlimitオプションを付けて、その後に、値を入力(単位はKbyte/秒
    例:rsync -zauv –bwlimit=400 xxxx.iso remote:/tmp/
    600kb/sで転送します。(値は低い方が安定しますが、環境によって調整します)

stallしなくても、下記のようなエラーでrsync転送に失敗することもあります。

rsync: connection unexpectedly closed (1324 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.6]

この対処として、圧縮オプション (-z)を外し、さらにtimeout(秒)を追加。

例:rsync -auv –bwlimit=400 –timeout=600 xxxx.iso remote:/tmp/


See also