每天早晨在10:00的crontab是设置运行在一个bash脚本此命令(下面日期是一个例子,它们使用在脚本在linux日期命令计算):奇怪hg的日志输出
hg log -R some-repo -b some-branch --date "2012-11-28 10:00 to 2012-11-29 10:00"
上述命令在所有开发人员推送其代码的远程回购服务器上运行。输出存储在一个字符串中,并通过电子邮件发送给我。但它总是空的!如果几分钟后手动运行脚本,我会得到预期的输出。
我比较了crontab运行脚本之前的历史记录,并验证确实已经提交/推送到远程仓库。
任何想法为什么在10:00后运行上述脚本会提供正确的输出,而不是在10:00时运行?
在脚本我这样做:
logString=$(hg log -R "$path-to-repo" -b $branch --date "$YESTERDAY to $TODAY")
if [ -z "$logString" ]; then
logString="Nothing"
fi
编辑:当脚本由运行crontab汞日志仅是空的。
解决:我需要为cron指定hg(/ usr/local/bin/hg)的完整路径来查看它。有点奇怪,因为它不需要svn的完整路径,它以前工作良好,没有完整的路径到hg。
如何查看cron在PATH中的含义?
在哪个用户下执行此crontab作业?截取作业的错误也可能 - 它可能不能验证 –
我登录并手动运行脚本的用户。 svn提交的日志也会生成/发送,并且工作正常。 – u123
Stderr ?!并且“10之后”在crontab中输出正确或仅用手? –