rsync バックアップ中に、リモートホストが xx.xx.xx.xx への接続を切断しました。

rsync バックアップ中に、リモートホストが xx.xx.xx.xx への接続を切断しました。

Webサーバーが2つあります。単純化のためにこれをローカルとリモートと呼びます。ローカル:ftpとcronアクセスのみ可能、リモート:ssh / ftp

ファイルを圧縮してリモートサーバーに送信する簡単なバックアップスクリプトを作成しました。 (cronから呼び出されます)リモートサーバーの〜/ .ssh / authorized_keysにローカルサーバーが追加され、パスワードなしで接続できます。

cd $FILES_TO_BACKUP_DIR
for dir in */
do
    base=$(basename "$dir")
    tar -czpf "$BACKUP_DIR/${base}-$DATE.tar.gz" "$dir"
    rsync -az -e "ssh -p $REMOTE_HOST_PORT -i $KEY_PATH" $BACKUP_DIR $REMOTE_HOST_ADDRESS:$REMOTE_BACKUP_DIR
    rm $BACKUP_DIR/${base}-$DATE.tar.gz
done

私の考えではうまくいくようです。ファイルがリモートサーバーに表示されます。すべてのファイルのサイズと一部のファイルのチェックサムを比較しました。すべてが一致します。

しかし、このメッセージはわかりません。 Connection to xxx.xxx.xxx.xxx closed by remote host. スクリプトが呼び出されるたびに、メッセージは異なる回数で表示されます。

テスト目的で約20個のtarをコピーしました。

set -x実行される各行を表示するために、スクリプトの先頭にこれを追加しました。

これはログの一部です。

./backup.sh
+ cd /home/tobackup/
+ for dir in '*/'
++ basename lgsm/
+ base=lgsm
+ tar -czpf /home/test/_backups/backups-tmp/lgsm-09-01-2020.tar.gz lgsm/
+ rsync -vaz -e 'ssh -p PORT' /home/test/_backups/backups-tmp USER@IP:/home/backups_test/_backups/backups
sending incremental file list
backups-tmp/
backups-tmp/lgsm-09-01-2020.tar.gz
backups-tmp/serverfiles-09-01-2020.tar.gz
Connection to IP closed by remote host.

sent 237,480,856 bytes  received 10,786 bytes  6,168,614.08 bytes/sec
total size is 241,069,740  speedup is 1.02
+ rm /home/test/_backups/backups-tmp/lgsm-09-01-2020.tar.gz
+ for dir in '*/'
++ basename log/
+ base=log
+ tar -czpf /home/test/_backups/backups-tmp/log-09-01-2020.tar.gz log/
+ rsync -vaz -e 'ssh -p PORT' /home/test/_backups/backups-tmp USER@IP:/home/backups_test/_backups/backups
sending incremental file list
backups-tmp/
backups-tmp/log-09-01-2020.tar.gz
Connection to IP closed by remote host.

sent 900 bytes  received 81 bytes  654.00 bytes/sec
total size is 237,899,887  speedup is 242,507.53
+ rm /home/test/_backups/backups-tmp/log-09-01-2020.tar.gz
+ for dir in '*/'
++ basename serverfiles/
+ base=serverfiles
+ tar -czpf /home/test/_backups/backups-tmp/serverfiles-09-01-2020.tar.gz serverfiles/

なぜこれが起こるのか、可能であればどのようにこの動作を防ぐことができるのか疑問に思います。 (重要でない場合はメッセージを非表示にしたいが、潜在的に他のエラーメッセージを保持したいと思います。rsync -qメッセージを表示したくない場合は、)

答え1

5つの異なるサーバー間で説明されている動作を比較しましたが、特定のサーバーへの接続でのみこの問題が発生しました。

md5チェックサムを確認した後、ファイルが同じであると確信しています。

警告は何の影響も与えないので、メッセージを隠すことにしました。 sshを使用するときは、最初にコマンドの最後に出力を
ファイルに書き込むようにサーバーのバックアップスクリプトを変更しました。>> $BACKUP_LOGS_FILE 2>&1

スクリプトの最後にgrepを使用して出力をフィルタリングします。grep -v 'Connection to xxx.xxx.xxx.xxx closed by remote host.' $BACKUP_LOGS_FILE

ただし、この問題の原因について説明できる人がいる場合は、いつでも回答を追加してください。

関連情報