欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux系統(tǒng)上實(shí)現(xiàn)定時(shí)重啟Tomcat服務(wù)腳本介紹

 更新時(shí)間:2021年11月25日 16:50:58   作者:IT東  
大家好,本篇文章介紹的是Linux系統(tǒng)上實(shí)現(xiàn)定時(shí)重啟Tomcat服務(wù)腳本介紹,感興趣的同學(xué)趕緊來看看,希望可以對你起到幫助

因?yàn)槭褂冒⒗镌撇渴鸱?wù)器應(yīng)用時(shí),Tomcat服務(wù)經(jīng)常由于內(nèi)存不足出現(xiàn)OutOfMemoryError異常的情況。經(jīng)常過幾天就需要重啟一次服務(wù)器,更要命的是不知道什么時(shí)候會(huì)由于內(nèi)存不足導(dǎo)致無法訪問,如果重啟不及時(shí)嚴(yán)重影響系統(tǒng)體驗(yàn)。

為了解決上述問題,一方面是對tomcat配置做一些優(yōu)化,網(wǎng)上有很多文章講解如何優(yōu)化Tomcat內(nèi)存設(shè)置;另一方面就是寫一個(gè)shell腳本,每天定時(shí)重啟Tomcat服務(wù)。這里主要記錄一下如何寫shell腳本并且配置定時(shí)任務(wù)。本人使用的環(huán)境是阿里云Ubuntu服務(wù)器,以下配置在阿里云的Ubuntu服務(wù)器上能正常運(yùn)行。

一、創(chuàng)建Shell腳本

新建一個(gè)tomcat.sh文件,輸入以下內(nèi)容:

#!/bin/bash
. /etc/profile
tomcatPath="/usr/local/tomcat"
binPath="$tomcatPath/bin"
echo "[info][$(date +'%F %H:%M:%S')]正在監(jiān)控tomcat,路徑:$tomcatPath"
pid=`ps -ef | grep tomcat | grep -w $tomcatPath | grep -v 'grep' | awk '{print $2}'`
if [ -n "$pid" ]; then
echo "[info][$(date +'%F %H:%M:%S')]tomcat進(jìn)程為:$pid"
echo "[info][$(date +'%F %H:%M:%S')]tomcat已經(jīng)啟動(dòng),準(zhǔn)備使用shutdown命令關(guān)閉..."
$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 +'%F %H:%M:%S')]使用shutdown命令關(guān)閉失敗,準(zhǔn)備kill進(jìn)程..."
kill -9 $pid
echo "[info][$(date +'%F %H:%M:%S')]kill進(jìn)程完畢!"
sleep 1
else
echo "[info][$(date +'%F %H:%M:%S')]使用shutdown命令關(guān)閉成功!"
fi
else
echo "[info][$(date +'%F %H:%M:%S')]tomcat未啟動(dòng)!"
fi
echo "[info][$(date +'%F %H:%M:%S')]準(zhǔn)備啟動(dòng)tomcat..."
$binPath"/startup.sh"

腳本的邏輯比較簡單,先查看tomcat進(jìn)程是否存在,如果不存在則直接調(diào)用startup.sh命令啟動(dòng)tomcat,如果tomcat的進(jìn)程存在則調(diào)用shutdown.sh命令停掉tomcat服務(wù),有時(shí)會(huì)關(guān)閉失敗,所以在檢查一下tomcat進(jìn)程時(shí)候還存在,如果存在就使用kill命令殺掉該進(jìn)程,然后啟動(dòng)tomcat。
這里有一個(gè)地方需要注意,第二行代碼(. /etc/profile)不能省掉,需要將環(huán)境變量引入到當(dāng)前腳本環(huán)境中,要不然會(huì)導(dǎo)致啟動(dòng)定時(shí)任務(wù)時(shí)運(yùn)行腳本失敗,會(huì)報(bào)以下錯(cuò)誤:

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program

二、修改文件權(quán)限

要讓腳本可以執(zhí)行,當(dāng)然要把文件設(shè)置為可執(zhí)行文件了。

chmod 777 tomcat.sh

三、建立定時(shí)任務(wù)

在控制臺(tái)上輸入使用crontab -e 命令進(jìn)入編輯crontab腳本,第一次輸入該命令時(shí)需要選擇編輯器。

選擇vim編輯器編輯就可,在文件后面增加一條任務(wù)。(我的腳本文件路徑是:/home/script/tomcat.sh)

然后保存并退出即可,接著使用crontab -l命令即可看到剛才新增的定時(shí)任務(wù)在列表里面。一般情況是直接生效,如果沒有生效可以使用sudo service cron restart命令重啟定時(shí)任務(wù)。

sudo service cron restart

四、定時(shí)任務(wù)描述語法

crontab中每一個(gè)定時(shí)任務(wù)的格式由6部分組成,分別是分鐘、小時(shí)、天、月、星期以及命令,前5部分用來配置任務(wù)觸發(fā)時(shí)機(jī),中間使用空格隔開,如下:
minute hour day month dayofweek command

minute – 表示分鐘,值的范圍是從0到59的整數(shù)?

hour – 表示小時(shí),值的范圍是從0到23的整數(shù)?

day – 表示天,值的范圍是從1到31的整數(shù)

month – 表示月,值的范圍是從1到12的整數(shù)

dayofweek – 表示星期,值的范圍是從0到6的整數(shù) (0表示周日)

command – 需要執(zhí)行的命令(/home/script/tomcat.sh > /home/script/shlog.txt表示執(zhí)行tomcat.sh腳本,并且把結(jié)果日志打印到shlo.txt中)

?時(shí)間部分除了使用估計(jì)數(shù)字以外還可以配合星號(*),逗號(,),斜杠(/),橫杠(-)組合來表示其他意義。

1. 星號(*)

表示任意值,比如:

30 01 * * * command #每天的1:30執(zhí)行命令

2. 逗號(,)

表示指定的時(shí)間,比如:

30 01 1,10,20 * * command #每月的1號、10號、20號的1:30分執(zhí)行命令

3. 斜杠(/)

表示每隔多長時(shí)間,比如:

* */2 * * * command #每個(gè)2小時(shí)執(zhí)行一次命令

4. 橫杠(-)

表示連續(xù)時(shí)間,比如:

* 1-7/1 * * * command #凌晨1點(diǎn)-7點(diǎn)之前每隔一小時(shí)執(zhí)行一次命令

五、其他

到此這篇關(guān)于Linux系統(tǒng)上實(shí)現(xiàn)定時(shí)重啟Tomcat服務(wù)腳本介紹的文章就介紹到這了,更多相關(guān)Linux系統(tǒng) 定時(shí)重啟Tomcat內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于使用shell腳本循環(huán)處理文本的問題

    關(guān)于使用shell腳本循環(huán)處理文本的問題

    今天給大家普及關(guān)于使用shell腳本循環(huán)處理文本的問題,其實(shí)操作步驟很簡單,本文通過腳本實(shí)例給大家講解,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • 一個(gè)簡單的linux命令 tail

    一個(gè)簡單的linux命令 tail

    這篇文章主要介紹了一個(gè)簡單的linux命令tail,tail命令用來從指定點(diǎn)開始將文件寫到標(biāo)準(zhǔn)輸出,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Shell if中的正則表達(dá)式使用詳解

    Shell if中的正則表達(dá)式使用詳解

    這篇文章主要介紹了Shell if中的正則表達(dá)式使用詳解的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • shell腳本實(shí)現(xiàn)多彩進(jìn)度條

    shell腳本實(shí)現(xiàn)多彩進(jìn)度條

    這篇文章主要介紹了shell腳本實(shí)現(xiàn)多彩進(jìn)度條的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 虛擬機(jī)中使用linux系啟用文件共享之后的文件存在的位置方法

    虛擬機(jī)中使用linux系啟用文件共享之后的文件存在的位置方法

    下面小編就為大家?guī)硪黄摂M機(jī)中使用linux系啟用文件共享之后的文件存在的位置方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • shell一鍵部署Zabbix的實(shí)現(xiàn)步驟

    shell一鍵部署Zabbix的實(shí)現(xiàn)步驟

    本文主要介紹了shell一鍵部署Zabbix的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • 詳解Linux ln 命令

    詳解Linux ln 命令

    Linux 中的文件分為 Hard Link 和 Symbolic Link 兩種。Hard Link 文件又被稱為硬鏈接文件、實(shí)體鏈接文件,Symbolic Link 文件則常被稱為符號鏈接、軟鏈接文件。這篇文章主要介紹了Linux ln 命令 ,需要的朋友可以參考下
    2019-08-08
  • 一天一個(gè)shell命令 linux文本內(nèi)容操作系列-awk命令詳解

    一天一個(gè)shell命令 linux文本內(nèi)容操作系列-awk命令詳解

    awk是一個(gè)強(qiáng)大的文本分析工具,相對于grep的查找,sed的編輯,awk在其對數(shù)據(jù)分析并生成報(bào)告時(shí),顯得尤為強(qiáng)大。簡單來說awk就是把文件逐行的讀入,以空格為默認(rèn)分隔符將每行切片,切開的部分再進(jìn)行各種分析處理
    2016-06-06
  • shell監(jiān)控系統(tǒng)資源并通過短信報(bào)警的腳本

    shell監(jiān)控系統(tǒng)資源并通過短信報(bào)警的腳本

    這篇文章主要介紹了shell監(jiān)控系統(tǒng)資源并通過短信報(bào)警的腳本,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Linux 中wget命令詳細(xì)介紹

    Linux 中wget命令詳細(xì)介紹

    這篇文章主要介紹了Linux 中wget命令詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-07-07

最新評論