编辑问题,抱歉造成混淆
我需要制作一个 cron 作业来备份远程服务器上的目录,并将备份放在运行 cron 作业的机器上。远程服务器没有 rsync,这就是我这样做的原因。
远程服务器名称是athens,我要备份的目录是/disk3/nicolas/scripts
唯一允许的连接是 ssh,它可以工作。我启动此命令将 SRC(athens::disk3/nicolas/scripts/)复制到当前目录
rsync --verbose athens::disk3/nicolas/scripts/ .
rsync: failed to connect to athens: Connection refused (61)
rsync error: error in socket IO (code 10) at /SourceCache/rsync/rsync-40/rsync/clientserver.c(105) [receiver=2.6.9]
我需要在远程服务器上编辑某些内容吗?也许是 inetd.conf?
按照要求,我使用的是 rsync 版本 2.6.9。没有 -e 选项来强制使用 ssh,在我的 rsync 版本中,-e 选项用于指定要使用的远程 shell。我无法增加更多详细程度。
答案1
尝试在 rsync 中添加详细模式-vvv
来查看失败的位置。
您是否正在使用非常老版本的 rsync,该版本默认不使用 ssh(早于 2.6.0)?如果是这样,请尝试添加-e ssh
强制 ssh 模式。
请编辑您的问题并粘贴您的调试输出和您尝试运行的精确 rsync 命令行。
答案2
你说:
唯一允许的连接是 ssh
当尝试使用 rsync 守护程序而不是 ssh 上的 rsync 时,您需要打开 tcp 端口 873 并确保 rsyncd 正在远程计算机上运行。
在这种情况下,我怀疑您实际上想要通过 ssh 执行 rsync,在这种情况下将双 :: 更改为单个 : 可能足以实现这一点:
rsync -v athens:/disk3/nicolas/scripts/ .
类似上述操作可能会做到这一点,您需要一个:并指定有效路径。