1. 程式人生 > >linux實戰(十)----shell監控tomcat服務是否正常----綜合運用

linux實戰(十)----shell監控tomcat服務是否正常----綜合運用

前面一章我們 嘗試了 批量的監控伺服器是否存活, 這一章我們來學習監控tomcat服務是否正常。

指令碼程式碼

指令碼程式碼如下:

#!/bin/sh


# func:自動監控tomcat並且在異常時執行重啟操作


# 定義環境變數
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.5.0_11/bin
export JAVA_HOME=/usr/java/jdk1.5.0_11
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin


# DEFINE


# 獲取tomcat程序ID
TomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-5.5.23'|grep -v 'grep'|awk '{print $2}')


# tomcat啟動程式(這裡注意tomcat實際安裝的路徑)
StartTomcat=/usr/apache-tomcat-5.5.23/bin/startup.sh
TomcatCache=/usr/apache-tomcat-5.5.23/work


# 定義要監控的頁面地址 
WebUrl=http://localhost:8080


# 日誌輸出
GetPageInfo=/tmp/TomcatMonitor.Info
TomcatMonitorLog=/tmp/TomcatMonitor.log


Monitor()
{
  echo "[info]開始監控tomcat...[$(date +'%F %H:%M:%S')]"
  if[ $TomcatID ];then  # 這裡判斷TOMCAT程序是否存在
    echo "[info]當前tomcat程序ID為:$TomcatID,繼續檢測頁面..."
    # 檢測是否啟動成功(成功的話頁面會返回狀態"200")
    TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10--connect-timeout 10 $WebUrl -w %{http_code})
    if[ $TomcatServiceCode -eq 200];then
        echo "[info]頁面返回碼為$TomcatServiceCode,tomcat啟動成功,測試頁面正常......"
    else
        echo "[error]tomcat頁面出錯,請注意......狀態碼為$TomcatServiceCode,錯誤日誌已輸出到$GetPageInfo"
        echo "[error]頁面訪問出錯,開始重啟tomcat"
        kill -9 $TomcatID  # 殺掉原tomcat程序
        sleep 3
        rm -rf $TomcatCache # 清理tomcat快取
        $StartTomcat
    fi
  else
    echo "[error]tomcat程序不存在!tomcat開始自動重啟..."
    echo "[info]$StartTomcat,請稍候......"
    rm -rf $TomcatCache
    $StartTomcat 
  fi
  echo "------------------------------"
}
Monitor>>$TomcatMonitorLog

程式碼解析

export  是給指令碼配置環境,配置環境後可使用該環境下的命令

ps  -e  顯示所有程序

ps -f   按樹狀顯示

grep tomcat  只取含有tomcat的行

grep -w 'apache-tomcat-5.5.23'        -w選項搜尋一個單詞,並且避免搜尋到詞中的部分字串。 搜尋含有apache-tomcat-5.5.23的行

grep -v 'grep'    去掉含有grep的行

awk '{print $2}'  用空格切分 取第二列

ps -ef |grep tomcat |grep -w 'apache-tomcat-5.5.23'|grep -v 'grep'|awk '{print $2}'   獲取tomcat的程序id 

但是僅僅是 tomcat程序存在是不夠的,需要訪問下  站點頁面看看 是否訪問正常  正常狀態為200  通過curl 

curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code}   訪問頁面並儲存頁面內容返回狀態碼
-s --silent 靜默模式,就是不顯示錯誤和進度
-o $GetPageInfo 將檔案儲存到本地並命名為$GetPageInfo  
-m  表示獲取網頁的最長時間(資料傳輸的最大允許時間)
-m 10 表示如果10秒內無法完成獲取網頁原始碼的操作,則放棄
--connect-timeout 連線超時時間
--connect-timeout 10  表示如果10秒內無法連線,則放棄
$WebUrl 就是我們要訪問的頁面路徑變數
-w  curl的-w引數我們可以自定義curl的輸出,%{http_code}代表http狀態碼


如果狀態碼為200則 tomcat正常,否則 kill  殺掉tomcat 程序, 訪問tomcat的啟動指令碼 start.sh  啟動tomcat

相關推薦

linux實戰()----shell監控tomcat服務是否正常----綜合運用

前面一章我們 嘗試了 批量的監控伺服器是否存活, 這一章我們來學習監控tomcat服務是否正常。 指令碼程式碼 指令碼程式碼如下: #!/bin/sh # func:自動監控tomcat並

linux實戰(一)----shell監控伺服器效能---綜合運用

前面分別學習了一些監控指令碼和實用的功能指令碼,本章節是綜合篇,把前面學習的內容綜合起來,實現對伺服器效能的監控。 主要實現如下功能: 為了持續觀察伺服器每天的基本執行狀態,提供方便方便易讀的集

Linux shell 指令碼新增環境變數,監控web 服務是否正常

例項1:寫shell指令碼定義函式設定環境變數路徑 prepend() { [ -d “$2” ] && eval $1="$2${$1:+’:’$$1}" && export $1 } 執行 prepend PATH /opt/myapp/bin 說明:

linux下用shelltomcat做成服務

收下申明下,自己不是很會寫shell,指令碼是查了了自己改的。找了很多個總是有各種各樣的問題,這個是親測沒有問題,希望對讀者有幫助 在 /etc/init.d/ 下面建立檔案 tomcat cd /etc/init.dtouch tomcatvim tomcat 寫入

shell監控web服務的多種方案

shell監控web服務的多種方案1.端口本地:ss.netstat,lsof遠程:telnet,nmap.nc2.本地進程數3.header(http,curl),模擬用戶的方式4.URL(wget,curl).模擬用戶的方式5.php,java寫監控的程序,模擬用戶的方式(讓開發提供)範例判斷條件[[em

Linux server配置安裝Java,Tomcat服務

left code 插入 成功 bsp ext 版本信息 最新 環境 系統:Ubuntu 16.04 dev_desktop 1.Java安裝並配置環境變量 (1)從Java官方網站下載最新版JDK: http://www.oracle.com/technetwork/ja

通過Nagios監控Tomcat服務

nagios tomcat 通過Nagios監控Tomcat服務 1.前言本文主要介紹如何通過Nagios軟件來監控Tomcat服務運行狀況,其中主要包括Tomcat Server以及JDBC Pool的運行狀態。Nagios的插件中本身並不提供對於Tomcat服務監控的功能,所以要根據Nagios Plu

監控Tomcat服務,自動重啟指令碼

針對測試環境程式異常關閉,由於測試環境安裝Supervisor太費勁了,就自己寫了一個小指令碼,希望能解決大家的問題,指令碼內容如下: #!/usr/bin/python # coding=utf-8 import subprocess import datetime import time

分散式系統監視zabbix講解監控tomcat--技術流ken

  前言 在Zabbix中,JMX監控資料的獲取由專門的代理程式來實現,即Zabbix-Java-Gateway來負責資料的採集,Zabbix-Java-Gateway和JMX的Java程式之間通訊獲取資料   安裝tomcat 準備 關閉防火牆和selinux [[e

分布式系統監視zabbix講解監控tomcat--技術流ken

host tools must 代理 listen ava 測試 detect hp-ux 前言 在Zabbix中,JMX監控數據的獲取由專門的代理程序來實現,即Zabbix-Java-Gateway來負責數據的采集,Zabbix-Java-Gateway和JMX的Ja

Jmeter監控Tomcat服務效能(6)

使用jmeter的tomcat監視器功能,可以通過向tomcat的status頁面傳送get請求,得到資源使用資訊,然後轉換為只直觀的影象方式,這樣的話,就可以監視到伺服器的資源使用情況,不過需要注意的是,要使用tomcat監視器功能,就必須在要監視的伺服器上裝有tomcat。  &n

linux下使用shell更新Tomcat下的war包

#!/bin/sh #check war exists echo "check war exists" war_file_path=/usr/tomcat/tomcat8.0_8090/webapps war_file_name=CTIM.war if [ ! -f "$w

linux實戰(九)----批量監控伺服器是否存活----綜合運用

我們在前面的幾章中已經學習了一些基本用法,現在來嘗試  批量監控伺服器是否存活。 基本的思路是 用 ping 的方法。 如果伺服器能ping通則說明伺服器存活。 程式碼 指令碼程式碼如下:

Linux下搭建兩個tomcat服務

繼上次完成linux下mysql的安裝,配置,以及授權後,今天接著完成tomcat的搭建,主要是區分埠。 1.接下來新建資料夾存放tomcat解壓檔案 2.將tomcat解壓到上述目錄下 3.建立連結 4.此時可以啟動tomcat服務

一個監控WEB服務是否正常shell

方法1:#! /bin/bash. /etc/profile. /root/.bash_profile export PATH export LC_ALL=zh_CN mysql -e "select url,msg,telList from monitor.url wh

Linuxshell腳本監控Tomcat的狀態並實現自動啟動

自動啟動 shell腳本 inux date monit 自動監控 訪問 shel -c 最近公司需要在Linux下監控tomcat的服務,一旦tomcat服務存在異常或者宕機,重啟tomcat保證服務的正常運行,由於Linux下有Shell腳本可以實現此效果,下面是Lin

Linux下使用shell指令碼自動監控重啟tomcat

自己親自重新寫了一份shell指令碼,實現自動監控重啟tomcat。 系統環境:CentOS 6.7 x86_64 jdk版本:1.7.0_80 tomcat版本:7.0.70 # ------

linux下啟動tomcat服務的命令是什麽

錯誤 tomcat 控制臺輸出 out 目錄 打開 客戶端 oca linux下 Linux下tomcat服務的啟動、關閉與錯誤跟蹤,使用PuTTy遠程連接到服務器以後,通常通過以下幾種方式啟動關閉tomcat服務:切換到tomcat主目錄下的bin目錄(cd usr/lo

shell 實現監控Web服務狀態

web 監控使用shell 實現監控Web服務狀態原理:下載網站,並把輸出寫入 /dev/null,如果該命令執行結果成功(返回0)打印成功提示,如果下 載失敗,這再下載一次,如果還是失敗,就打印失敗腳本如下[[email protected]/* */ ~]# cat checkur

Linux上安裝Tomcat服務器並發布javaweb項目

img blog tom log 分享 str 命令 apache tar 一、安裝Tomcat 1、 將apache-tomcat-7.0.72.tar.gz文件上傳至Linux指定文件夾下 2、 用tar –zxvf命令將apache-tomca