测试运行cron条目

时间:2011-11-15 06:30:55

标签: linux unix cron crontab

我最近添加了一个cron作业,但是在给出命令的同时在路径上犯了一个错误,因此,这项工作从未成功过。有没有办法测试我们所做的cron更改?

请注意,我确实从我的命令行复制并粘贴了命令,这只是一个导致此问题的迷路按键。

4 个答案:

答案 0 :(得分:43)

当我想测试我的cron作业时,我通常将间隔设置得非常低,并密切监视日志。当我确信输入正确时,我将间隔设置回一个合理的值。

例如,每两分钟运行一次作业:

*/2 * * * * echo "Hello World"

我在我的日志文件(debian上的tail -f)上运行/var/log/syslog

答案 1 :(得分:26)

此问题也在serverfault and has garnered a couple additional answers

上提出

以下是Marco's solution的释义版本: (不确定最好的ediquite是否只提供链接回答或不复制别人的解决方案)

使用临时cron条目

创建环境文件
* * * * *  /usr/bin/env > /home/username/cron-env

然后创建一个名为run-as-cron的shell脚本,该脚本使用该环境执行命令。

#!/bin/sh

. "$1"
exec /usr/bin/env -i "$SHELL" -c ". $1; $2"

授予执行权限

chmod +x run-as-cron

然后它就像这样使用:

./run-as-cron <cron-environment> <command>

e.g。

./run-as-cron /home/username/cron-env 'echo $PATH'

答案 2 :(得分:5)

约书亚的回答对我不起作用。两个问题:

  • cron-env文件中的变量未导出(需要set -a)。

  • 脚本仍与当前tty相关联(需要setsid)。

脚本run-as-cron应为

#!/bin/sh

. "$1"
exec setsid /usr/bin/env -i "$SHELL" -c "set -a; . $1; $2" </dev/null

没有足够的代表&#39;修复他的答案或添加评论...

答案 3 :(得分:0)

使用命令crontab -e 这将打开一个vim编辑器,你要做的就是 * * * * * /somepath/urscript.sh,确保日期和脚本路径之间有适当的空格 执行后,您可以检查/ var / spool / mail中是否有完整的脚本执行或错误跟踪。 对于测试没有办法..但是如果你的sh urscript.sh工作,那么cron tab就没有问题,因为它与你手动完全相同。

相关问题