shell指令碼實現多台伺服器自動巡檢

來源:互聯網
上載者:User

shell指令碼實現多台伺服器自動巡檢 摘要:         營運服務一個項目二十多台(或者多台)伺服器,每天要做伺服器的效能巡檢工作是查看伺服器的CPU、記憶體、磁碟空間是否在正常值範圍內。像這樣每天或者每個固定時間段都做相同的重複工作,為了簡化重複的工作,我寫了基於liunx伺服器的自動巡檢指令碼,在crontab中設定一個固定時間進行自動執行即可,以減少人工重複勞動的工作。 環境:         我的項目上主要伺服器是LINUX和AIX兩種伺服器,總數在30台左右。現在的工作量是每周巡檢兩次,都是手動登入到每台伺服器使用相應的命令查看伺服器績效參數。 思路: 1、所有的伺服器之間的網路都是在同一個區域網路內,所有網路兩兩相通。 2、在其中選擇一台效能相對較好或者是伺服器運行壓力較小的伺服器,作為巡檢伺服器。 3、通過這一伺服器來實現對其他伺服器的巡檢,然後把巡檢結果記錄到巡檢伺服器上。 4、每台伺服器巡檢結果都以時間和ip做命名用來區分,最後將所有巡檢結果壓縮打包。 5、每次維護人員只需要定時去取這個壓縮包查看最後結果即可,免去了對每台伺服器都需要登入和輸入相同的命令進行查看。 具體實現指令碼: #! /bin/bashecho "start running!" | tee -a LANG=enset `date`path="/home/check"echo "start running!" | tee -a  $path/log/$1-$2-$3.logif [ -d /home/check/result/$1-$2-$3 ]; then   echo ''elsemkdir /home/check/result/$1-$2-$3echo `date +"%Y/%m/%d-%H:%M:%S"` "create " "$1-$2-$3" "directory success !"|tee -a $path/log/$1-$2-$3.logfiecho `date +"%Y/%m/%d-%H:%M:%S"` "starting reading linuxconfig.txt  !" |tee -a $path/log/$1-$2-$3.logcat "$path"/config/linuxconfig.txt| while read line;doip=`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 1echo account sleep 1echo password sleep 3echo "free -k"echo ""echo "df -k"echo ""#memory_used_rateecho "ps -ef| grep java"echo ""echo "netstat -an|egrep -n '8010|8008|9008|44444|4100'"echo ""echo "ifconfig -a"echo ""echo "top -n1|sed -n '1,5p'"echo "exit"sleep 5)|telnet $ip >/home/check/result/$1-$2-$3/$ip-$1-$2-$3-$4.txtecho `date +"%Y/%m/%d-%H:%M:%S"` "check LINUX " $ip " end !" |tee -a $path/log/$1-$2-$3.logecho "" | tee -a $path/log/$1-$2-$3.logdoneecho `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.logcat "$path"/config/AIXconfig.txt| while read line;doip=`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 1echo accountsleep 1echo password sleep 5echo ""echo "df -k"echo ""#memory_used_rateecho "ps -ef| grep java"echo ""echo "netstat -an|egrep -n '8010|8008|9008|44444|4100'"echo ""echo "ifconfig -a"echo ""echo "topas"echo "exit"sleep 5)|telnet $ip >/home/check/result/$1-$2-$3/$ip-$1-$2-$3-$4.txtecho `date +"%Y/%m/%d-%H:%M:%S"` "check IBM AIX " $ip " end !" |tee -a $path/log/$1-$2-$3.logecho "" | tee -a $path/log/$1-$2-$3.logdoneecho `date +"%Y/%m/%d-%H:%M:%S"` "end reading AIXconfig.txt  !" | tee -a $path/log/$1-$2-$3.logzip -r /home/check/result/$1-$2-$3/$1-$2-$3.zip /home/check/result/$1-$2-$3/*echo "End running !" 注意: 該指令碼的巡檢是基於TELNET服務所以被檢伺服器必須開啟TELNET服務,不然巡檢會失敗。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.