web-dev-qa-db-ja.com

rsync接続は約1時間で閉じます

2つのデータセンターでrsyncを実行するコマンドをcronで実行しています。データセンター間の接続速度は約1Mbpsです。 rsyncが約2.7GBから2.9GBの転送データで失敗し続けることに気づきました。これは、上記の接続では約1時間以上に相当する可能性があります。私は過去に、ファイアウォールが1時間以上開いたアイドル接続を閉じるように構成されていることを知っています。

しかし、rsync転送は本当にアイドル状態になるのでしょうか?これを修正するにはどうすればよいですか?

エラー:

rsync:接続が予期せず閉じられました(これまでに2987596424バイトを受信しました)[受信者]

rsyncエラー:io.c(605)でのrsyncプロトコルデータストリーム(コード12)のエラー[receiver = 3.0.9]

rsync:接続が予期せず閉じられました(これまでに523バイトを受信しました)[ジェネレーター]

rsyncエラー:io.c(605)でのrsyncプロトコルデータストリーム(コード12)のエラー[generator = 3.0.9]

私はすでにこれを〜/ .ssh/configに持っています(しかし、おそらくこれらの値を増やす必要がありますか?):

Host *
  ServerAliveInterval 60
  ServerAliveCountMax 15
3
Bradford

Rsync転送中のアイドルネットワーク接続:

はい、rsyncは、ディスクの読み取り中および送信するパケットがない間、quietを維持できます。

あなたが言った。 ファイアウォールは、1時間以上開いたアイドル接続を閉じるように構成されていますが、継続的なアイドル期間については何もありません

rsyncは両端で処理し、以前に計算されたチェックサムに基づいて、ファイル全体を読み取ってパケット間の差異を検索します。

両端のファイルに違いはありませんが、違いが見つかるまで両端のファイルが交換されない場合があります。

デスクトップと彼のバックアップの間で実行された単一のrsyncを表す小さなグラフィックがあります。

Trace rsync network traffic

数秒が経過したことがありますなしデータ:

TIME                     BLOCKS           BYTES
                        IN  OUT      IN     OUT
...
Jul 28 15:00:07 2013   449   41   23443 1526403
Jul 28 15:00:08 2013     0    0       0       0
Jul 28 15:00:09 2013     0    0       0       0
Jul 28 15:00:10 2013   143  182   21348 1123986
Jul 28 15:00:11 2013   112  142    6966  523326
Jul 28 15:00:12 2013    31   30    1942    1890
Jul 28 15:00:13 2013    30   28    1853   88038
Jul 28 15:00:14 2013     0    0       0       0
Jul 28 15:00:15 2013    57   66    3954   38301
...

回避策:

回避策として、ソケットベースのssh共有を使用できます。

最初に、ソケットと接続をぶら下げるためにプレーンsshを実行します

ssh -M -o ControlPath=$HOME/.ssh/socket_test destHost ping -n localhost

別のウィンドウより:

rsync -e 'ssh -e none -S $HOME/.ssh/socket_test' /src/file destHost:/dst/file

このようにして、両方のsshセッションに1つの接続のみが使用されます。 pingは、同じネットワーク接続を使用してrsyncが静かに動作するよりも、(多くの)継続的なトラフィックを保証します。

4
F. Hauri