运维开发网

rsync代码将运行,但不会在cron中运行

运维开发网 https://www.qedev.com 2020-06-07 09:41 出处:网络
我有一个Web服务器(odin)和一个备份服务器(jofur).在jofur上,我可以运行以下代码来将我的web目录(通过密钥认证)从odin转发到jofur:
我有一个Web服务器(odin)和一个备份服务器(jofur).在jofur上,我可以运行以下代码来将我的web目录(通过密钥认证)从odin转发到jofur:

rsync -avz -e ssh backups@odin.mydomain.net:/home/backups /home/myuser/odin

如果我在命令行输入这个内容,那么rsyncs就完美了:

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中:

Could not create directory ‘/home/myuser/.ssh’.

Host key verification failed.

rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]

rsync error: unexplained error (code 255) at io.c(605) [Receiver=3.0.9]

我不确定这个错误意味着什么.我担心盲目地使用权限,因为我不想让任何后门打开.有什么建议?

很难判断cron是否使用了错误的rsync二进制文件,或者rsync是否需要一些未在cron中设置的变量.请设置stdout / stderr,如下所示,并传递日志文件的输出

另外,尝试从命令行执行“which rsync”;这将告诉您从命令行使用哪个rsync.

0 4 * * * rsync -avz -e ssh backups@odin.mydomain.net:/home/backups /home/myuser/odin > /tmp/cron_output.log 2>&1

编辑:

您可以创建一个名为SOME_DIR / cron_job_rsync.sh的shell脚本,其中包含以下内容.确保设置执行位.

#!/bin/sh
/usr/sbin/rsync -avz -e ssh backups@odin.mydomain.net:/home/backups /home/myuser/odin

并修改cronjob,如下所示

0 4 * * * SOME_DIR/cron_job_rsync.sh >/tmp/cron_output.log 2>&1
0

精彩评论

暂无评论...
验证码 换一张
取 消