2012-08-17 80 views
1

我想在我的debian系统中创建一个cron任务。cron为什么不运行?

我这样做

sudo crontab -e 

,并添加一行

10 17 * * * /home/userdir/cron/meiwei-slide-shoot.sh 

而且我做到这一点,在17:00和希望脚本在运行17:10。但它不起作用。

我试过了这个脚本。它运作良好。但为什么不通过cron运行?

+0

cron守护进程是否启动?看看cron日志,看看是否有错误。 – 2012-08-17 09:19:01

+0

'meiwei-slide-shoot.sh'可执行文件,是否以指定要调用的shell的shebang行开始? – 2012-08-17 09:20:25

+0

为什么不测试每分钟的脚本* * * * * /home/userdir/cron/meiwei-slide-shoot.sh>/dev/null 2>&1如果这样的话,然后改变时间,然后测试 – Rajeev 2012-08-17 09:21:14

回答

1

您是否检查过该文件是否可执行?

你有没有加入这样一行:

touch /tmp/proof_that_i_am_running 

到脚本的顶部,以检查其是否正开始,并刚刚辍学某些其他原因,像一个不完整的环境设置?

您是否收到来自cron的包含输出/错误的邮件?

您是否检查了cron假脱机目录(例如/var/spool/cron/crontabs)以确保条目已创建?

有很多事情你可能错过了,这只是常见的事情,但一个好的开始。


一个很好的测试是添加:

* * * * * date >>/tmp/crondates 2>&1 

crontab并观察是否出现该文件。

+0

我试过这个'* * * * * date >>/tmp/crondates 2>&1'。有用。但我仍然无法执行脚本。 – aisensiy 2012-08-20 03:23:00

+0

@aisensiy:并将'touch'放在脚本的顶部?那是干什么的? – paxdiablo 2012-08-20 05:30:09

+1

我将此添加到脚本'script.sh> /tmp/cron.log 2>&1'中,它告诉我无法找到该命令。也许根目录找不到dir/usr/local/bin? – aisensiy 2012-08-20 07:18:45

1

我会

  1. 检查这些文件的权限,以确保该脚本可以由cron用户
  2. 日志标准输出/标准错误到一个文件,以捕捉如任何错误执行script.sh >/tmp/cron.log 2>&1

cron进程,以巨大的剪切下来环境中运行,很可能是你要么有执行权限问题,或者你依靠一个环境变量不可用。对于什么是值得的,每次我设置cron作业时,我都会经历几次迭代。

This AskUbuntu question还包含一些有用的信息。