shell指令碼實現多臺伺服器自動巡檢--可參考學習
shell指令碼實現多臺伺服器自動巡檢
摘要:
運維服務一個專案二十多臺(或者多臺)伺服器,每天要做伺服器的效能巡檢工作是檢視伺服器的CPU、記憶體、磁碟空間是否在正常值範圍內。像這樣每天或者每 個固定時間段都做相同的重複工作,為了簡化重複的工作,我寫了基於liunx伺服器的自動巡檢指令碼,在crontab中設定一個固定時間進行自動執行即 可,以減少人工重複勞動的工作。
環境:
我的專案上主要伺服器是LINUX和AIX兩種伺服器,總數在30臺左右。現在的工作量是每週巡檢兩次,都是手動登入到每臺伺服器使用相應的命令檢視伺服器效能引數。
思路:
1、所有的伺服器之間的網路都是在同一個區域網內,所有網路兩兩相通。
2、在其中選擇一臺效能相對較好或者是伺服器執行壓力較小的伺服器,作為巡檢伺服器。
3、透過這一伺服器來實現對其他伺服器的巡檢,然後把巡檢結果記錄到巡檢伺服器上。
4、每臺伺服器巡檢結果都以時間和ip做命名用來區分,最後將所有巡檢結果壓縮打包。
5、每次維護人員只需要定時去取這個壓縮包檢視最後結果即可,免去了對每臺伺服器都需要登入和輸入相同的命令進行檢視。
具體實現指令碼:
cat check.sh
#! /bin/bash
echo "start running" | tee -a
LANG=en
set `date`
path="/home/check"
echo "start running" | tee -a $path/log/$1-$2-$3.log
if [ -d /home/check/result/$1-$2-$3 ];
then
echo ''
else
mkdir -p /home/check/result/$1-$2-$3
echo `date +"%Y/%m/%d-%H:%M:%S"` "create " "$1-$2-$3" "directory success "|tee -a $path/log/$1-$2-$3.log
fi
echo `date +"%Y/%m/%d-%H:%M:%S"` "starting reading linuxconfig.txt " |tee -a $path/log/$1-$2-$3.log
cat "$path"/config/linuxconfig.txt| while read line;
do
ip=`echo $line |cut -d '=' -f2`
echo `date +"%Y/%m/%d-%H:%M:%S"` "check LINUX " $ip " starting " |tee -a $path/log/$1-$2-$3.log
(
sleep 1
#echo account
echo root
sleep 1
#echo password
echo root
sleep 3
echo "free -k"
echo ""
echo "df -k"
echo ""
#memory_used_rate
echo "ps -ef| grep java"
echo ""
echo "netstat -an|egrep -n '80|22|21|23|9043|9044|45331|45332|39194|19195'"
echo ""
#echo "ifconfig -a "
echo "/sbin/ip ad"
echo ""
echo " tail -2000 /var/log/messages | grep -v snmp |grep -i error "
echo ""
echo "/bin/dmesg |grep -i error"
echo ""
echo "top -n1|sed -n '1,5p'"
echo "exit"
echo "/usr/bin/vmstat 1 3"
echo ""
sleep 5
)|telnet $ip >/home/check/result/$1-$2-$3/$ip-$1-$2-$3-$4.txt
echo `date +"%Y/%m/%d-%H:%M:%S"` "check LINUX " $ip " end" |tee -a $path/log/$1-$2-$3.log
echo "" | tee -a $path/log/$1-$2-$3.log
done
echo `date +"%Y/%m/%d-%H:%M:%S"` "end reading linuxconfig.txt " |tee -a $path/log/$1-$2-$3.log
echo `date +"%Y/%m/%d-%H:%M:%S"` "starting reading AIXconfig.txt " | tee -a $path/log/$1-$2-$3.log
cat "$path"/config/AIXconfig.txt| while read line;
do
ip=`echo $line |cut -d '=' -f2`
echo `date +"%Y/%m/%d-%H:%M:%S"` "check IBM AIX " $ip " starting " |tee -a $path/log/$1-$2-$3.log
(
sleep 1
#echo account
echo root
sleep 1
#echo password
echo root
sleep 5
echo ""
#echo "df -k"
echo "df -g"
echo ""
#memory_used_rate
echo "ps -ef| grep java"
echo ""
echo "netstat -an|egrep -n '80|22|21|23|9043|9044|45331|45332|39194|19195'"
echo ""
echo "ifconfig -a"
echo ""
echo "topas"
echo "exit"
sleep 5
)|telnet $ip >/home/check/result/$1-$2-$3/$ip-$1-$2-$3-$4.txt
echo `date +"%Y/%m/%d-%H:%M:%S"` "check IBM AIX " $ip " end " |tee -a $path/log/$1-$2-$3.log
echo "" | tee -a $path/log/$1-$2-$3.log
done
echo `date +"%Y/%m/%d-%H:%M:%S"` "end reading AIXconfig.txt " | tee -a $path/log/$1-$2-$3.log
zip -r /home/check/result/$1-$2-$3/$1-$2-$3.zip /home/check/result/$1-$2-$3/*
echo "End running "
注意:
該指令碼的巡檢是基於TELNET服務所以被檢伺服器必須開啟TELNET服務
轉自:http://blog.chinaunix.net/uid-14824714-id-4181103.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2219679/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- shell指令碼企業巡檢指令碼
- mysql 伺服器巡檢指令碼MySql伺服器指令碼
- SharePlex 基於Solaris 10 Linux自動巡檢指令碼Linux指令碼
- 多臺kafka同時啟動shell指令碼Kafka指令碼
- [shell]shell指令碼實現每天自動抽取資料插入hive表指令碼Hive
- dba巡檢指令碼指令碼
- mysql巡檢指令碼MySql指令碼
- Laravel 驗證碼類實現 (供學習、參考)Laravel
- linux透過shell指令碼實現ssh互動式自動化Linux指令碼
- SQL SERVER巡檢指令碼SQLServer指令碼
- 自動批次實現linux機器ssh免密shell指令碼Linux指令碼
- 自動輸入密碼使用root許可權開啟shell指令碼密碼指令碼
- Shell指令碼實現生成SSL自簽署證書指令碼
- 巡檢昨天到現在asm 、系統、資料庫等錯誤日誌 shell指令碼ASM資料庫指令碼
- 實現指令碼自動部署docker指令碼Docker
- 【Linux】【Shell】主控指令碼實現Linux指令碼
- 自動化指令碼安裝mysql shell指令碼範例指令碼MySql
- 基於信創運維平臺,實現國產化網路自動巡檢運維
- Linux命令和shell指令碼學習Linux指令碼
- shell指令碼學習筆記-1指令碼筆記
- 【網路安全】Shell 指令碼學習指令碼
- shell和bash指令碼命令學習指令碼
- 如何使用 Shell 指令碼來檢視多個伺服器的埠是否開啟?指令碼伺服器
- python實現自動搶課指令碼Python指令碼
- Oracle運維指令碼-巡檢(RAC版)Oracle運維指令碼
- shell指令碼實現DNS正向解析指令碼DNS
- 從零開始實現資料庫自動化巡檢(一)資料庫
- shell 備份檔案指令碼+自動清理指令碼
- Linux學習之路(三)Shell指令碼初探Linux指令碼
- 【學習】Linux Shell指令碼程式設計Linux指令碼程式設計
- Linux基礎服務巡檢指令碼模板Linux指令碼
- Oracle運維指令碼-巡檢(單機版)Oracle運維指令碼
- 【SCRIPT】Oracle日常巡檢指令碼通用版Oracle指令碼
- 什麼是shell指令碼?Linux為什麼學習shell?指令碼Linux
- 案例八:Shell自動化管理賬號指令碼指令碼
- linux學習day3——shell指令碼上Linux指令碼
- linux學習day4——shell指令碼中Linux指令碼
- 如何讓shell指令碼自殺指令碼