我有一个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”
我该如何解决这个问题?
答案 0 :(得分:0)
由cron
启动的Shell脚本必须仔细指定它们正在运行的环境。在cron
内运行的shell将是非交互式的,这意味着它们不会读取/etc/profile
,通常设置$PATH
的位置。这意味着您需要指定脚本中调用的所有可执行文件的路径。
如果你运行了很多cron脚本,那么编写一个小的shell脚本可能是值得的,它将定义和导出要在脚本中使用的环境变量,从$PATH
开始。
答案 1 :(得分:0)
这是我在谷歌搜索'cron环境变量'时得到的link。它可能有所帮助。还有很多其他人喜欢它:)
答案 2 :(得分:0)
将脚本放在以下目录中,然后它应该每天运行。
/etc/cron.daily/