crontab定時任務不執行,單獨執行sh生效
阿新 • • 發佈:2019-01-07
在網上找了一個定時重啟tomcat的指令碼,自己手動執行是可以的,但就是加入crontab後不執行。
重啟指令碼如下
restart_tomcat.sh
#!/bin/bash
tomcat_home=/usr/local/tomcat8
SHUTDOWN=$tomcat_home/bin/shutdown.sh
STARTTOMCAT=$tomcat_home/bin/startup.sh
$SHUTDOWN
$STARTTOMCAT
定時任務
0 2 * * * cd /opt && ./restart_tomcat.sh
定時任務執行後提示資訊在/var/spool/mail/root中
cat /var/spool/mail/root
從提示資訊中我們看到是在執行指令碼的時候沒有找到JAVA_HOME
在網上也找到了一篇文章中介紹的
有時我們建立了一個crontab,但是這個任務卻無法自動執行,而手動執行這個任務卻沒有問題,這種情況一般是由於在crontab檔案中沒有配置環境變數引起的。
所以就改了一下重啟指令碼,加入source /etc/profile
最終的重啟指令碼如下
#!/bin/sh
source /etc/profile
tomcat_home=/usr/local/tomcat8
# 找到tomcat程序並kill掉
ps -ef |grep tomcat |awk {'print $2' } |sed -e "s/^/kill -9 /g" |sh -
# 刪除日誌目錄
# rm $tomcat_home/logs/* -rf
# 刪除臨時目錄
# rm $tomcat_home/work/* -rf
# 啟動tomcat
start_tomcat=$tomcat_home/bin/startup.sh
$start_tomcat
這次就能重啟了,還是linux知識掌握的太少,沒有系統地瞭解。
注意事項:crontab中要寫全路徑