【linux】【tomcat】linux下定時重啓tomcat 【CentOS 6.4】【CentOS 7.6】

 

本章內容以CentOS 6.4   和   CentOS  7.6  兩個版本爲例。[6和7的命令不一樣]html

 

 

 

 

 

=====================CentOS 6.4===================

 

步驟:java

一.建立腳本文件,本腳本文件用於中止,重啓tomcat運行的java進程,並設置腳本文件權限

 

1.新建腳本文件tomcat.sh

【注意文件建立的路徑】linux

【查看當前路徑的命令:   pwd】centos

建立文件命令:tomcat

vi tomcat.sh

2.粘貼腳本文件文本內容到文件中:

【注意,標紅部分須要本身修改成本身服務器上的對應地址】bash

【查看linux服務器上JAVA_HOME命令:  echo $JAVA_HOME 】服務器

【關鍵一行:app

ps -ef|grep java | grep catalina | awk '{print $2}

能夠準肯定位到當前正在tomcat下啓動運行的java進程,而不是安裝的java,參考地址:https://www.cnblogs.com/sxdcgaq8080/p/10734752.htmlspa

#!/bin/bash . /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_79 export JRE_HOME=$JAVA_HOME/jre tomcatPath="/backup/tomcat7" binPath="$tomcatPath/bin" echo "[info][$(date +'%F %H:%M:%S')]正在監控tomcat,路徑:$tomcatPath" pid=`ps -ef|grep java | grep catalina | awk '{print $2}'` if [ -n "$pid" ]; then echo "[info][$(date +'%F %H:%M:%S')]正在運行的tomcat進程爲:$pid" echo "[info][$(date +'%F %H:%M:%S')]tomcat已經啓動,準備使用shutdown命令關閉..." $binPath"/shutdown.sh" sleep 2 pid=`ps -ef|grep java | grep catalina | awk '{print $2}'` if [ -n "$pid" ]; then echo "[info][$(date +'%F %H:%M:%S')]使用shutdown命令關閉失敗,準備kill進程..." kill -9 $pid echo "[info][$(date +'%F %H:%M:%S')]kill進程完畢!" sleep 1
else echo "[info][$(date +'%F %H:%M:%S')]使用shutdown命令關閉成功!" fi else echo "[info][$(date +'%F %H:%M:%S')]tomcat未啓動!" fi echo "[info][$(date +'%F %H:%M:%S')]準備啓動tomcat..." $binPath"/startup.sh"

 

3.修改腳本文件tomcat.sh 可操做權限

命令:.net

chmod 777 tomcat.sh

 

 

二.修改定時任務配置,添加本腳本到定時任務配置中,啓動定時任務

1.修改定時任務配置

命令:

crontab -e

將上面的腳本文件路徑,以及定時任務配置粘貼到配置文件中:

58 10  * * * /backup/tomcat7/tomcat.sh

【本配置說明:  天天10:58分   執行腳本文件,腳本文件路徑在:/backup/tomcat7/tomcat.sh】

【關於定時任務的配置說明,請自行查閱】

【最後要說明的一點:本命令操做與vi操做文本命令同樣】

 

 

 

 

2.操做定時任務

關閉定時任務命令:

service crond stop

 

啓動定時任務命令:

service crond start

 

 

 

重啓定時任務命令:

service crond restart

 

查看定時任務列表:

crontab -l

 

 

 

查看定時任務執行日誌:

 

tail -f -n 200 /var/spool/mail/root

 

 

 

3.查看tomcat下運行的java進程是否已經重啓

查看命令:

ps -ef|grep java

能夠從下圖看到,正在運行的新的java進程是在10:58 啓動的【說明java進程重啓成功】

 

 

 

CentOS 6 使用cron定時任務,報錯:Redirecting to /bin/systemctl restart crond.service

 能夠查詢下面的CentOS 7 使用cron定時任務相關操做。

 

 

========================CentOS  7.6=======================

 

 

 

一.cron任務的自啓動相關命令

1.檢測cron定時服務是否自啓用

systemctl is-enabled crond.service

結果展現以下:

enable表示已啓用自啓動 disable標識未啓用自啓動

 

2.若是未啓用,則開啓cron自啓用

systemctl enable crond.service

 

3.若是已經啓用,想要cron關閉自啓動

systemctl disable crond.service

 

 

 

 

附錄:

linux系統自帶服務的啓動文件和狀態

 

 

 

 

二.cron服務是否啓動相關命令【區別於自啓動】

1.查看cron服務的啓動狀態

[只有cron的狀態是active  running的,才表示cron服務是啓動的]

systemctl status crond.service

 

 

 

2.啓動cron服務[命令沒有提示]

systemctl start crond.service

 

3.中止cron服務[命令沒有提示]

systemctl stop crond.service

 

4.重啓cron服務[命令沒有提示]

systemctl restart crond.service

 

5.從新加載cron服務[命令沒有提示]

systemctl reload crond.service

 

 

 

 

三.操做定時任務

1.定時任務的編輯

crontab -e

編輯內容和centos6 同樣。表示天天7.30  執行 /mnt/apps/tomcat/tomcat.sh 路徑下的腳本

30 07  * * * /mnt/apps/tomcat/tomcat.sh

 

若是在上面,已經把定時任務cron啓動了,編輯定時任務後,會有提示

 

2.查看已編輯的定時任務

crontab -l

 

 

3.刪除已編輯的全部定時任務

crontab -r

 

 

 

 

四.查看定時任務的執行日誌

1.查看cron執行日誌

tail -f -n 200 /var/log/cron

 

 

 

五.最後總結

如上述命令,整個cron操做步驟以下

1>編輯了.sh腳本,並保存,記錄.sh文件所在路徑【必定確保.sh腳本可用,能夠嘗試在編輯完成.sh文件後,直接./tomcat.sh  執行腳本文件,查看是否能夠正常執行】

2>查看並設置cron爲自啓動

3>查看並啓動cron服務,使狀態爲running

4>編輯並查看cron服務,注意路徑和定時格式,確保cron服務編輯成功

5>最後在編輯完成cron服務後,從新加載或重啓cron服務,確保cron服務狀態是running的

6>最後能夠經過查看cron執行日誌,確保cron是否執行

7>若是cron任務不執行,確保linux服務器系統 時間 和時區 是否正常

 

六.cron任務不執行,問題排查

如上,已經確保  第五點中全部 步驟都正確執行了。可是cron定時任務一直沒有執行。

我這裏出現的緣由,是由於服務器的時區設置不正確。

 

正確的時區應該是

CST

若是你的時區是

UTC

 

或者其餘,就致使時間和時區不正確。

我設置的定時任務是17.05執行,結果等到了17.05,定時任務不執行,由於此刻的系統時間是05.05

 

解決方法:

http://www.javashuo.com/article/p-wljkwztk-dm.html

 

 

 

=================================================

 

 

 

參考地址:

https://blog.csdn.net/abcdad/article/details/69239249

 

定時啓動開啓後,無效解決方案:

https://blog.csdn.net/zxc_user/article/details/82634370

相關文章
相關標籤/搜索