我有一个网页服务器(odin)和一个备份服务器(jofur)。在jofur上,我可以运行以下代码通过密钥验证从odin同步我的网页目录到jofur:
rsync -avz -e ssh backups@odin.mydomain.net:/home/backups /home/myuser/odin
如果我在命令行中输入这个命令,所有的rsync都可以完美同步:
myuser@jofur:~$ rsync -avz -e ssh backups@odin.mydomain.net:/home/backups /home/myuser/odin
receiving incremental file list
sent 23 bytes received 1921 bytes 1296.00 bytes/sec
total size is 349557271 speedup is 179813.41
我希望这个程序每天早上都能运行,所以我编辑了我的crontab文件,将其修改为以下内容:
0 4 * * * rsync -avz -e ssh backups@odin.mydomain.net:/home/backups /home/myuser/odin
以下代码无法运行。下面的信息会被存储在/var/mail/myuser中:
无法创建目录'/home/myuser/.ssh'。 主机密钥验证失败。 rsync:连接意外关闭(迄今为止已接收到0个字节)[接收器] rsync错误:在io.c(605)[接收器=3.0.9]处出现未解释的错误(代码255)
我不确定这个错误的含义。我不想盲目地操作权限,因为我不想留下任何后门。有什么建议吗?
/usr/bin/rsync
但是当我将其添加到我的cron命令的末尾时:> /tmp/cron_output.log 2>&1
即使设置为每分钟运行,crontab也无法运行。我知道这是因为当我将其设置为每分钟运行(* * * * * *)时,它会抛出错误邮件,但如果我放置您的代码,则不会抛出任何错误,也不会更新输出日志。 - peteyreplies/bin/sh: 1: /home/user/scripts/cron_rsync.sh: Permission denied
。 - peteyreplies/home/user/scripts/cron_rsync.sh: 2: /home/user/scripts/cron_rsync.sh: /usr/sbin/rsync: not found.
确实,在/usr/sbin/
下没有rsync,但在/usr/bin
下有,所以我修改了cron_rsync.sh的内容为#!/bin/sh /usr/bin/rsync -avz -e ssh backups@odin.mydomain.net:/home/backups /home/user/mydomain.
现在日志显示receiving incremental file list sent 23 bytes received 2368 bytes 4782.00 bytes/sec total size is 497303674 speedup is 207989.83.
这是否意味着它正在工作? - peteyreplies