天天看點

編寫shell腳本實作tomcat定時重新開機的方法我的環境是 centos 7

我的環境是 centos 7

1、 在某個目錄建立一個 .sh 腳本檔案(一般cron安裝在var/spool/cron這裡,于是我就将腳本建立在這)

vim  /var/spool/cron/tomcatStart.sh
           

2、 在 tomcatStart.sh 檔案裡面寫入一下代碼

#!/bin/bash
/etc/profile
tomcatPath="/usr/local/tomcat"
binPath="$tomcatPath/bin"
echo "[info][$(date)]正在監控tomcat,路徑:$tomcatPath"
pid=`ps -ef | grep tomcat | grep -w $tomcatPath | grep -v 'grep' | awk '{print $2}'`
if [ -n "$pid" ]; then
echo "[info][$(date)]tomcat程序為:$pid"
echo "[info][$(date)]tomcat已經啟動,準備使用shutdown指令關閉"
$binPath"/shutdown.sh"
sleep 2
pid=`ps -ef | grep tomcat | grep -w $tomcatPath | grep -v 'grep' | awk '{print $2}'`
if [ -n "$pid" ]; then
echo "[info][$(date)]使用shutdown關閉失敗,準備kill程序"
kill -9 $pid
echo "[info][$(date)]kill程序完畢"
sleep 1
else
echo "[info][$(date)]使用shutdown關閉成功"
fi
else
echo "[info][$(date)]tomcat未啟動"
fi
echo "[info][$(date)]準備啟動tomcat"
$binPath"/startup.sh"
           
注意:if [ -n “$pid” ]; then,這個語句中括号“[”後邊一定要有空格,"]"前邊一定要有空格

3、 修改 tomcatStart.sh 的權限

chmod +x   /var/spool/cron/tomcatStart.sh
           

4、添加腳本到 crontab 定時任務

vi /etc/crontab

// 第一個是 tomcatStart.sh 的路徑, 第二個是将日志輸出到某個檔案中

00 03 * * * root   /var/spool/cron/tomcatStart.sh >> /usr/local/tomcat/tomcatStartLog.txt
           

5、重新開機一下 crontab 以生效

systemctl restart crond
           

或者

service crond restart 
           

注意:if [ -n “$pid” ]; then,這個語句中括号“[”後邊一定要有空格,"]"前邊一定要有空格

注:定時器等操作不詳細介紹,具體請參考linux定時備份MySQL資料庫

作者:10676

連結:https://www.jianshu.com/p/45455f36e859