为什么在 cron 中运行的 rsync 命令会失败?

为什么在 cron 中运行的 rsync 命令会失败?

为什么在 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.

相关内容