我有一个 rsync 服务器,但我无法列出模块或传输到模块。
以下工作正确:
rsync -v test.txt [email protected]:test
它将在用户的主目录中创建一个新文件“test”
以下操作无法正常工作:
rsync -v test.txt [email protected]::moduleA
和
rsync [email protected]::
它返回的是:
> rsync: failed to connect to host.com (*inet_ntop failed*):
> Connection refused (111) rsync error: error in socket IO (code 10) at
> clientserver.c(122) [sender=3.0.8]
在服务器上(使用 ssh)执行“rsync localhost::”会返回模块列表。但使用主机名执行命令时会出现与上述相同的错误。
有人能帮忙吗?谢谢
答案1
rsync 服务器使用自己的协议(在端口 873 上)进行连接,而不是 ssh。如果您只允许 ssh 进行 rsync 传输,则无法正常工作。您的防火墙是否阻止了端口 873?
请注意,如果您通过互联网执行此操作,则需要保护此流量。您可以使用 VPN 或使用选项设置远程 shell 连接--rsh
。对于后者,请查看:
http://linux.die.net/man/1/rsync
然后转到“通过远程 shell 连接使用 Rsync-daemon 功能”部分。基本上,运行:
rsync -v test.txt --rsh=ssh [email protected]::moduleA
或者可能(因为将针对 rsync 用户进行身份验证,而不是 ssh 用户)rsync -v -e "ssh -l user" test.txt [email protected]::moduleA
[email protected]::moduleA
答案2
它与这个命令一起工作rsync -azve"ssh -l user" --rsync-path="sudo rsync" file.txt user@host::module
原因是选择--rsync-path="sudo rsync"
答案3
对我来说,我发现出现此错误是因为我的接收目录名称中有空格。因此“My Directory”不能用作接收目录。一旦我将其更改为“My_Directory”,错误就消失了。