我正在尝试设置一个 cron 来运行此命令:
rsync -e "ssh -i /home/ldsmp3/ssh-key -o GSSAPIAuthentication=no" -az /home/ldsmp3/public_html [email protected]:remote-dir%%bak-ldsmp3.com%%myid%%mykey
当我在终端中运行上述命令时,它工作正常。但是,当我通过 cron 运行同一命令时,它会失败并向我发送一封包含以下内容的电子邮件...
Host key verification failed.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(463) [sender=2.6.8]
我已经在网上搜索了好几个小时试图找出如何解决这个问题,但到目前为止我尝试过的所有方法都没有奏效。
关于如何通过 cron 使该命令正常工作,有什么想法吗?
谢谢!
编辑:哦,我正在尝试在运行 Centos 5.5 的专用服务器上运行此命令
答案1
您可能需要查看错误的第一部分。
Host key verification failed
远程主机密钥是否已添加到相应的.ssh/known_hosts
文件中?主机密钥最近是否已更改?您运行 rsync/ssh 的帐户是否可以访问相应的 known_hosts 文件?
答案2
cron 吃掉百分号。要么将您的 rsync 命令放入从 cron 调用的脚本中,要么通过将百分号加倍来转义它们。
答案3
cron 以哪个用户身份运行您的 rsync 作业?它与您从命令行运行的那个用户是同一个吗?如果不是,您的 .ssh/known_hosts 文件将有所不同,我预计会看到该错误。