0

我正在尝试通过 ssh 隧道设置自动 rsync 备份(使用 cron),但收到错误“与远程主机关闭的本地主机连接。”。我正在运行 Ubuntu 12.04。我已经寻求帮助并尝试了许多解决方案,例如将 ALL:ALL 添加到 /etc/hosts.allow,检查 sshd_config 中的#MaxStartups 10:30:60,在 sshd_config 中设置 UsePrivilegeSeparation no,创建 /var/empty/sshd 但是没有人解决了这个问题。

我运行 autossh 以确保隧道始终存在:

autossh -M 25 -t -L 2222:destination.address.edu:22 pbeyersdorf@intermediate.address.edu -N -f

这似乎运行良好,我已经能够将隧道用于各种 rsync 任务,事实上,我第一次通过 cron 运行以下 rsync 任务时它成功了:

rsync -av --delete-after /tank/Documents/ peteman@10.0.1.5://Volumes/TowerBackup/tank/Documents/

每个文件的状态和输出

sent 7331634 bytes  received 88210 bytes  40215.96 bytes/sec
total size is 131944157313  speedup is 17782.61

自从第一次成功以来,每次尝试都会给我以下输出

building file list ... Connection to localhost closed by remote host.
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(605) [sender=3.0.9]

较小子目录的 rsync 操作按预期工作。我很感激任何关于可能是什么问题的想法。

4

1 回答 1

0

似乎问题与autossh有关。如果我通过 ssh 而不是 autossh 创建隧道,它可以正常工作。我怀疑我可以调整影响 autossh 配置的环境变量,但出于我的目的,我通过将 rsycn 命令包装在一个脚本中解决了这个问题,该脚本首先通过 ssh 打开隧道,执行备份然后终止 ssh 隧道,从而消除对 autossh 创建的始终打开的隧道的需求:

#!/bin/sh
#Start SSH tunnel
ssh -t -L 2222:destination.address.edu:22 pbeyersdorf@intermediate.address.edu -N -f
#execute backup commands
rsync -a /tank/Documents/ peteman@localhost://Volumes/TowerBackup/tank/Documents/ -e "ssh -p 2222"
#Kill SSH tunnel
pkill -f "ssh.*destination.address"
于 2012-11-08T17:31:00.420 回答