cron 作业脚本 - 该脚本无法从 cron 运行(或者无法启动)

cron 作业脚本 - 该脚本无法从 cron 运行(或者无法启动)

我创建了一个脚本来做一些事情(我将其简化为仅用于测试目的以回显“IS FINALLY WORKING”)。如果我输入

#bash /var/www/html/somedir/script.sh

它运行正常。

问题是我需要一个 cron 来访问它但它不起作用。

要设置 cron,我使用了:

crontab -e

15 * * * * /var/www/html/somedir/script.sh 

或者

15 * * * * bash /var/www/html/somedir/script.sh

我根本看不到任何结果。

我也尝试记录它

15 * * * * /var/www/html/somedir/script.sh > cronscriptlog.log

日志是空的。

操作系统是CentOS 5.5。

答案1

确保/var/www/html/somedir/script.sh不依赖 cron 默认 PATH 之外的任何内容。CentOS 将默认 PATH 设置为/sbin:/bin:/usr/sbin:/usr/bin

您可能希望创建如下的 cron 作业:

15 * * * * ( . /etc/profile && /var/www/html/somedir/script.sh )

或者

15 * * * * su - user /var/www/html/somedir/script.sh 

获得类似于命令行的执行环境。

答案2

有时候很容易忽略简单的事情。

要检查的另一件事是 cron 环境,它会每分钟运行一次,因此只需在给出一次输出后将其注释掉即可。

* * * * * root env > /tmp/cronenv.log

Bash 环境和 cron 环境之间总是存在差异。

答案3

/var/log/cronCentOS 系统上的cron 日志文件中是否有任何相关信息?

检查尝试运行脚本的帐户的邮件,这就是 cron 发送从脚本获得的任何输出的地方。

您只能从您的脚本中捕获 stdout,但您也可以使用 捕获 stderr &> cronscriptlog.log

相关内容