每天早上 10:00 crontab 设置为在 bash 脚本中运行此命令(以下日期是示例,它们是使用脚本中的 linux date 命令计算的):
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 运行时,hg 日志才为空。
已解决:我需要为 cron 指定 hg (/usr/local/bin/hg) 的完整路径才能看到它。有点奇怪,因为它不需要 svn 的完整路径,而且之前它在没有 hg 的完整路径的情况下运行良好。
如何查看 cron 在其 PATH 中的内容?