linux cron job没有运行

时间:2012-08-23 12:28:53

标签: linux cron ubuntu-server

我有一个Ubuntu Server 10。

在根cron我有一个脚本每天都在同一时间运行。

手动运行脚本它运行正常,但在cron中它不运行。

在系统日志中,我得到了这个:

Aug 23 09:22:01 database CRON[6884]: (root) CMD (./bkp.sh >> /tmp/bkp.log)
Aug 23 09:22:01 database CRON[6883]: (CRON) error (grandchild #6884 failed with exit status 2)

我找到了问题的可能来源,我在脚本中添加了一些LOG(echo)...

在脚本执行期间,它会退出“功能”定义...

似乎我无法访问命令“function”

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

cron启动的Shell脚本必须仔细指定它们正在运行的环境。在cron内运行的shell将是非交互式的,这意味着它们不会读取/etc/profile,通常设置$PATH的位置。这意味着您需要指定脚本中调用的所有可执行文件的路径。

如果你运行了很多cron脚本,那么编写一个小的shell脚本可能是值得的,它将定义和导出要在脚本中使用的环境变量,从$PATH开始。

答案 1 :(得分:0)

这是我在谷歌搜索'cron环境变量'时得到的link。它可能有所帮助。还有很多其他人喜欢它:)

答案 2 :(得分:0)

将脚本放在以下目录中,然后它应该每天运行。

/etc/cron.daily/