这是一个棘手的问题:
我有一个 cron 作业,它运行一个包含大量 rsync 命令的脚本。出于某种原因,在我向每个 rsync 命令添加 --max-size=2G 参数后,作业出现以下错误:
++++START+++++++++++++++++++++++++++++++
Tue Mar 9 16:53:00 EST 2010
rsync: --max-size=2G: unknown option
rsync error: syntax or usage error (code 1) at main.c(1023)
real 0m0.018s
user 0m0.011s
sys 0m0.006s
----END FONTS-------------------------------
Tue Mar 9 16:53:00 EST 2010
--------------------------------------
这是我的计划:
SHELL=/bin/sh
PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin
#min hour mday month wday command
#testing
53 16 * * 2 /Users/admin/Documents/scripts/test_rsync_script > /Users/admin/Documents/logs/$(date +\%y_\%m_\%d__\%H_\%M).log 2>&1
以下是 test_rsync_script 的内容(我为这篇文章混淆了 IP 地址):
echo "++++START+++++++++++++++++++++++++++++++"
date
time rsync --max-size=2G --archive --verbose --update -e ssh /Volumes/RAID/FONTS/ [email protected]:/Volumes/OFFSITE/FONTS --delete
echo "----END FONTS-------------------------------"
date
echo "--------------------------------------"
我在命令行上以 root 身份测试了 cron 命令,一切正常!我的 cron 有问题吗?如果没有 --max-size=2G 参数,它就可以正常工作。
答案1
您可能有两个不同版本的rsync
。中的与 命令行中的$PATH
不同。cron
尝试type -a rsync
显示可执行文件的位置。然后在脚本中使用正确版本的完整路径指定。
/path/to/rsync rsync_options ...