Bash 远程主机在rsync备份期间关闭了到xx.xx.xx.xx的连接

Bash 远程主机在rsync备份期间关闭了到xx.xx.xx.xx的连接,bash,Bash,我有两台网络服务器。为了简单起见,我们将它们称为本地和远程。 本地:我只有ftp和cron访问权限,远程:ssh/ftp 我编写了一个简单的备份脚本,它对文件进行tar处理,然后将它们发送到远程服务器。(在cron中调用) 本地服务器添加到远程服务器上的~/.ssh/authorized_密钥中,以便在不使用密码的情况下进行连接 cd $FILES_TO_BACKUP_DIR for dir in */ do base=$(basename "$dir") tar -czpf "

我有两台网络服务器。为了简单起见,我们将它们称为本地和远程。 本地:我只有ftp和cron访问权限,远程:ssh/ftp

我编写了一个简单的备份脚本,它对文件进行tar处理,然后将它们发送到远程服务器。(在cron中调用) 本地服务器添加到远程服务器上的~/.ssh/authorized_密钥中,以便在不使用密码的情况下进行连接

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
我认为它工作得很好-文件出现在远程服务器上

但是,我不确定这条消息:
远程主机关闭到xxx.xxx.xxx.xxx的连接。
每次调用脚本时显示的次数不同

出于测试目的,我复制了大约20焦油。我添加了带有时间戳的回声,以检查它发生在哪一点,并且只有在创建tar之后。有时甚至在第一次循环运行时,还不应该建立连接

我不认为它会破坏任何东西,但我很好奇为什么会发生这种情况,如果可能的话,我如何才能防止这种行为。(我已经尝试使用
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/

我比较了5个不同服务器之间的行为,只有与一个特定服务器的连接存在此问题

在使用md5校验和检查后,我确信文件是相同的

由于警告不会影响任何内容,我已决定抑制该消息。
现在,我已经修改了服务器上的备份脚本,以便在使用ssh的情况下,它首先通过以下方式将输出记录到文件中:
>$backup\u logs\u file 2>&1

在脚本的最后,我使用grep过滤掉输出:
grep-v“远程主机关闭到xxx.xxx.xxx.xxx的连接”。$BACKUP\u LOGS\u FILE


但是,如果有人对造成这种情况的原因有任何解释,请随意添加您的答案。

错误来自
ssh
命令,因为这是创建网络连接的唯一原因。可能是某种网络错误或超时,
rsync
会自动重新连接。@Barmar如果连接自动恢复,是否可以抑制此类消息?我只想看到有意义的错误,因为主机提供了一个工具,允许在有任何日志时发送电子邮件,我想使用它。(但不是每一次运行,没有重要的日志)我曾尝试在rsync中使用-q参数,但它仍然显示了这条消息。我已经使用
scp
很多年了,我认为我从未见过这条消息,所以我不确定为什么会发生这种情况。这只是猜测它会自动重新启动。您可以尝试
--quiet
选项。消息肯定来自
rsync
,但我不确定原因。这是一个更好的提问的地方,因为这与您的脚本无关。