为什么在 cron 中运行的 rsync 命令失败以及如何调试和修复它?
unset SSH_AUTH_SOCK && unset KRB5CCNAME && rsync -hvru -e "ssh -p 34503 -i /root/.ssh/id_rsa_rsyncBACKUP" --progress /home/kristjan/* [email protected]:/BACKUP/Backup/Kundrum/ >> /home/kristjan/logs/rsyncCRON.log
$crontab -l
# Edit this file to introduce tasks to be run by cron.
# m h dom mon dow command
0 5 * * 1 /home/kristjan/bin/checkSystem
00 02 * * * unset SSH_AUTH_SOCK && unset KRB5CCNAME && rsync -hvru -e "ssh -p 34503 -i /root/.ssh/id_rsa_rsyncBACKUP" --progress /home/kristjan/* [email protected]:/BACKUP/Backup/Kundrum/ >> /home/kristjan/logs/rsyncCRON.log
15 23 * * 7 /home/kristjan/bin/unhideCheckSystem
错误是(我从电子邮件中收到的):
ssh: connect to host 192.168.1.213 port 34503: No route to host
rsync: connection unexpectedly closed
rsync error: unexplained error (code 255) at io.c (235)
如果我直接在 shell 中运行该命令,该命令就会起作用。
编辑:
来自远程 = 上的 ssh 文件,AllowUsers kristjan root
并由 cron 运行root
编辑:
自从发布这个问题以来,我更改了命令并且它以这种方式工作,但我仍然有兴趣知道为什么第一个不起作用。
这是 root 的 cron 中的工作命令:
0 5 * * 1 /home/kristjan/bin/checkSystem
00 02 * * * unset SSH_AUTH_SOCK && unset KRB5CCNAME && rsync -hvru -e "ssh -p 34503 -i /root/.ssh/id_rsa_rsyncBACKUP" --progress /home/kristjan/* [email protected]:/BACKUP/Backup/Kundrum/ | mail -s "Backup Home report for `uname -n`" myMailATTgmail.com
由于重复标志而编辑:
如果这是一个关于基本上重定向错误的问题(不是说我没有)那么为什么原始问题中的这一行:
The command works if I run it in the shell directly.