1. 程式人生 > >linux下crontab 任務不執行的可能原因總結

linux下crontab 任務不執行的可能原因總結

昨天遇到了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,指令碼自動執行成功!

1 16 * * * bash /usr/local/moniter.sh >>/usr/local/cron.log