我创build了一个脚本来做一些事情(在我为了testing的目的而只是回应“IS FINALY WORKING”)之后。 如果我input
#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
我根本看不到结果。
另外我试图logging它
15 * * * * /var/www/html/somedir/script.sh > cronscriptlog.log
日志是空的。
os是CentOS 5.5。
确保/var/www/html/somedir/script.sh不依赖cron默认PATH之外的任何内容。 CentOS的默认path设置为/sbin:/bin:/usr/sbin:/usr/bin 。
你可能希望创build这样的cron作业:
15 * * * * ( . /etc/profile && /var/www/html/somedir/script.sh )
要么
15 * * * * su - user /var/www/html/somedir/script.sh
得到一个类似于你的命令行的执行环境。
容易错过简单的事情有时。
另一个要检查的是cron环境,它会每隔一分钟运行一次,所以只要给它一次输出就可以注释掉。
* * * * * root env > /tmp/cronenv.log
Bash环境和cron环境总是有区别的。
CentOS系统中的cron日志文件/var/log/cron是否有相关的消息?
检查试图运行脚本的帐户的邮件,这是cron发送从脚本获得的任何输出的地方。
您只捕获了ypur脚本中的stdout,您也可以使用&> cronscriptlog.log捕获stderr。