linux shell 檢查服務器健康情況

檢查服務器健康情況的辦法有幾種web

1. 檢查進程是否存在shell

使用 ps 命令便可api

ps aux | grep xxxxbash

2. 檢查端口號服務器

netstat -antp | grep xxxxdom

可是有時服務器處理假死狀態,即進程存在同時也監聽了端口可是不處理任何消息。這裏能夠使用第三種方法。curl

3. 訪問web服務器的api,查看http狀態碼jsp

這裏使用 curl 命令, 不懂curl的能夠百度一下這裏不作詳細的解釋了。oop

curl -o /dev/null -s -w %{http_code} www.baidu.comurl

以上命令能夠取得http狀態碼。 返回200表示服務器可以正常處理請求,不然既是有問題。

 

下面利用shell腳本批量檢查服務器是否宕機或者假死,話很少說直接上代碼。

這裏有2個文件

watch.sh

#!/bin/bash

for file in `cat domain.txt`
do
    for loop in `seq 1 30`
    do
        rs=`curl -o /dev/null -s -w %{http_code} $file`
        echo "$file result -> $rs"

        urlresponse=${file}" -> "${rs}

        if [ $rs -eq 200  ]; then
            urlresponse=$urlresponse"\n"
            break
        else
            urlresponse=$urlresponse" error\n"
        fi

        sleep 2
    done
    result=${result}${urlresponse}
done

echo -e "\n-------------------"
echo -e  $result

domain.txt

http://xxx.xxx.xxx.xxx:8080/xxx.jsp
http://xxx.xxx.xxx.xxx:9080/xxx.jsp
http://xxx.xxx.xxx.xxx:8080/xxx.jsp
#http://xxx.xxx.xxx.xxx:8080/xxx.jsp
#http://xxx.xxx.xxx.xxx:8080/xxx.jsp

 

watch.sh 讀取 domain.txt 中的地址,每一個地址每隔2秒請求一次循環30次。判斷 http_code 是否返回 200, 若是是的則檢查下一個地址。所有檢查完以後輸出彙總結果。如需增長鬚要檢查的服務器,在domain.txt 中添加便可。

相關文章
相關標籤/搜索