我在两台服务器之间使用 rsync 传输文件。
问题是有些文件没有传输。我收到此错误:rsync:readlink“/var/www/index.html”失败:权限被拒绝(13)
因此,我检查了服务器上的权限,并在进行测试后,我注意到只有具有以下权限的文件才会被传输:RW!如果文件具有以下权限:R--,Rsync 无法下载它!?
命令:
/usr/bin/rsync -avzr -e "/usr/bin/ssh -i /home/replication/thishost-rsync-key" [email protected]:/var/www/index.html ./
这是 Rsync 的一个错误吗?我找到了有关此问题的任何信息。
感谢您的帮助
Debian Etch 2.6.30 Rsync 2.6.9 协议版本 29
答案1
rsync 需要能够读取您尝试复制的文件,因此我猜测运行 rsync 的用户对相关文件没有读取权限。
如果是这种情况,您可以授予该用户对该文件的读取权限,或者使用对您尝试复制的所有文件已具有读取权限的其他帐户。
如果不是这个问题,请发布 ls -l /var/www/index.html 的输出
答案2
要验证这是否是 rsync 所说的权限问题,请尝试:
ssh [email protected] "ls -al /var/www/index.html"
or
ssh [email protected] "ls -al /var/www/"
查看某些未传输的文件是否是指向树外的符号链接;如果是,请查看 --safe-links 或 --copy-links 参数。
更改权限或更改用户。
您可以为 rsync 提供更多“详细程度”,例如rsync -avvv [...]
查看更多错误消息。
“r”参数是不需要的,因为“a”默认为“-rlptgoD”。当你递归复制时,省略“index.html”,只需写上“/var/www/”并加上斜杠即可。