Соединение с xx.xx.xx.xx закрыто удаленным хостом во время резервного копирования rsyn c - PullRequest
1 голос
/ 09 января 2020

У меня есть 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. Иногда даже при первом запуске l oop, когда соединение еще не установлено.

Я не думаю, что это что-то нарушает, но мне любопытно, почему это происходит, и если это возможно, как Могу ли я предотвратить такое поведение. (Я пытался использовать rsync -q для подавления сообщения, но оно не работает.)

Как это выглядит с 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/

1 Ответ

1 голос
/ 26 января 2020

Я сравнил описанное поведение между 5 различными серверами, и эта проблема возникает только для соединения с одним конкретным сервером.

После проверки с помощью контрольной суммы md5 я уверен, что файлы идентичны.

Поскольку предупреждение ни на что не влияет, я решил подавить сообщение.
На данный момент я изменил скрипт резервного копирования на сервере, поэтому в случае любого использования s sh он записывает выходные данные в сначала файл: >> $BACKUP_LOGS_FILE 2>&1 в конце команды.

В самом конце скрипта я использую grep для фильтрации вывода: grep -v 'Connection to xxx.xxx.xxx.xxx closed by remote host.' $BACKUP_LOGS_FILE

Однако, если У кого-нибудь есть объяснение, что может быть причиной этого, не стесняйтесь добавлять свой ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...