昨天遇到了crontab不能执行的问题,现总结如下:
现象:
a.shell脚本已经有执行权限(chmod 777 xxx.sh)
b.在#!/bin/sh的下行已经加上了source ~/.bash_profile
c.已经确认 crond 服务正常运行(service crond status)
d.crontab 文件正确无误
e.脚本可以手动执行但不能自动执行
原因(个人):
crontab没有给root赋权限,执行如下命令:
crontab -u root /var/spool/cron/root
另外,查看crontab操作日志
现象:
a.shell脚本已经有执行权限(chmod 777 xxx.sh)
b.在#!/bin/sh的下行已经加上了source ~/.bash_profile
c.已经确认 crond 服务正常运行(service crond status)
d.crontab 文件正确无误
e.脚本可以手动执行但不能自动执行
原因(个人):
crontab没有给root赋权限,执行如下命令:
crontab -u root /var/spool/cron/root
另外,查看crontab操作日志
cat /var/log/cron
也可以把输出定向到文件中,以便查看原因。
例如:我的tomcat down掉后自动检测并启动的脚本,发现未启动原因是JAVA_HOME未指定,但是 echo $JAVA_HOME 确实存在,并且脚本手动执行能够成功!
我想可能是系统执行时找不到JAVA_HOME,最后在 catalina.sh 中加入 JAVA_HOME,脚本自动执行成功!