我有一个在大约 100 个客户端上运行的备份脚本,并且通常工作正常。现在我遇到了 1 位通常没有任何问题的客户的问题
这条线路通常运行良好。
rsync -z --partial --times -vvvvv --recursive --log-file="/backup/clientx/clientx.debug-star2.log" --rsync-path="nice -n19 ionice -c3 rsync" --timeout=3600 --delete-after --bwlimit=500 --rsh "nice -n19 ionice -c3 ssh -o StrictHostKeyChecking=no -i /root/.ssh/clientx_rsync_id_rsa" /backup/clientx/dir1/ backup@remote-server:/backup/clientx/dir1
它启动正常并开始构建文件列表。
note: iconv_open("UTF-8", "UTF-8") succeeded.
(Client) Protocol versions: remote=30, negotiated=30
building file list ...
[sender] change_dir(/backup/clinetx/dir1)
[sender] make_file(.,*,0)
[sender] make_file(inc,*,2)
[sender] make_file(clientx.log,*,2)
[sender] make_file(full,*,2)
[sender] make_file(inc/2015,*,2)
[sender] make_file(inc/2007,*,2)
[sender] make_file(inc/2012,*,2)
但它停止了,没有构建文件列表并退出。
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
[sender] _exit_cleanup(code=12, file=io.c, line=601): entered
rsync error: unexplained error (code 255) at io.c(601) [sender=3.0.7]
[sender] _exit_cleanup(code=12, file=io.c, line=601): about to call exit(255)
但如果我在另一个目录上尝试相同的操作,那就没问题了。唯一的区别是dir2
大约有 1600 个文件和dir1
大约 4300 个文件。
正如我所说,它在具有相同数量的文件的所有其他客户端上运行良好。
ls -ld
dir1 - drwxrwx--- 4 root nagios 4096 May 23 20:59 .
dir2 - drwxrwx--- 7 root nagios 4096 Feb 22 2016 .
有人知道出了什么问题吗?
答案1
这里的情况相同:一个古老的备份脚本可以在任何地方工作,除了 ISP 是 AT&T 光纤服务的单个远程站点上的主机;调制解调器有一个Arris。它总是工作很短的时间(< 2 秒),然后连接突然终止。
唉,我最黑暗的怀疑被证明是真的。通过反复试验,对 rsync“--bwlimit”参数使用不同的值,我发现连接不会因“--bwlimit=56”或更少而中断,但它是总是用“--bwlimit=57”或更多中断。
在远程站点,我查看了 Arris 调制解调器的用户界面(192.168.1.254),没有发现任何需要调整的地方。所有端口都通过它转发到那里的 OpenWRT 18.06 路由器(“DMZplus 模式”)。该路由器与其他几个站点的其他几台路由器是同一台路由器,具有非常相似的设置,但没有一个路由器存在这种连接中断问题。
将通信限制为 56 KB/秒是一个糟糕的解决方案,但至少它是一个看起来确实有效的解决方案。确实令人震惊。当心 AT&T。 (在这个特定的偏远地区享有垄断地位。)
答案2
您正在尝试使用 id 备份到远程系统,backup
但远程系统上的权限阻止该帐户访问目标目录。
您需要放宽权限,以便用户backup
可以写入dir1
,dir2
或者使用该root
帐户作为目标用户。