智能監(jiān)測自動重啟Apache服務器的Shell腳本
自動重啟故障相信大家都遇到過,原因也有很多,跟系統(tǒng),硬件或者外界因素都有關。這篇文章主要介紹了智能監(jiān)測自動重啟Apache服務器的Shell腳本,實現(xiàn)監(jiān)控Apache不可用時,第一次強制重啟,第二次郵件通知管理員,需要的朋友可以參考下
腳本功能與特點
1、能夠每隔一段時間監(jiān)測Apache服務器的可用性(由于本腳本直接模擬了客戶端的訪問,因此這里的“可用性”是指切切實實的正??稍L問)
2、在出現(xiàn)無法訪問的情況下,能夠自動重啟Apache服務(強行重啟)
3、在重啟后仍然無法正常訪問的話,自動執(zhí)行更進一步的操作(比如發(fā)送郵件、重啟服務器等)
后文將給出此腳本的具體使用方法與注釋,大家可以根據(jù)自己的情況手動修改(需了解一定bash shell編程)。
腳本內容:
#!/bin/bash
URL=”http://127.0.0.1/”
curlit()
{
curl –connect-timeout 15 –max-time 20 –head –silent “$URL” | grep '200′
# 上面的15是連接超時時間,若訪問localhost的HTTP服務超過15s仍然沒有正確響應200頭代碼,則判斷為無法訪問。
}
doit()
{
if ! curlit; then
# 如果localhost的apache服務沒有正常返回200頭,即出現(xiàn)異常。執(zhí)行下述命令:
sleep 20
top -n 1 -b >> /var/log/apachemonitor.log
# 上面將top命令內容寫入日至文件備查
/usr/bin/killall -9 apache2 && /usr/bin/killall -9 php5-cgi && /usr/bin/killall -9 httpd && /usr/bin/killall -9 http && /usr/bin/killall -9 apache && /usr/bin/killall -9 php-cgi > /dev/null
# 兼容起見,殺死了各種apache的進程??梢愿鶕?jù)自己apache服務的特點修改
sleep 2
/etc/init.d/apache2 start > /dev/null
/etc/init.d/httpd start > /dev/null
# 兼容起見,執(zhí)行了兩種apache重啟命令,可根據(jù)需要自己修改。
echo $(date) “Apache Restart” >> /var/log/apachemonitor.log
# 寫入日志
sleep 30
# 重啟完成后等待三十秒,然后再次嘗試一次
if ! curlit; then
# 如果仍然無法訪問,則:
echo $(date) “Failed! Now Reboot Computer!” >> /var/log/apachemonitor.log
# 寫入apache依然重啟失效的日志
reboot
# 重啟機器唄。實際上重啟整個服務器是一種非常不得已的做法。本人并不建議。大家根據(jù)需要自己修改,比如短信、郵件報警什么的。
fi
sleep 180
fi
}
sleep 300
# 運行腳本后5分鐘后才開始正式工作(防止重啟服務器后由于apache還沒開始啟動造成誤判)
while true; do
# 主循環(huán)體
doit > /dev/null
sleep 10
done
使用方法
使用方法非常靈活,總之讓上面的腳本在開機后一直執(zhí)行就行了。由于腳本使用了curl命令,因此還需要安裝curl環(huán)境。安裝curl的方法:
根據(jù)發(fā)行版選擇下面兩條命令即可:
yum install curl
apt-get install curl
若希望將其自動啟動,則可以把腳本寫入rc.local中即可。
補充:電腦總是自動重啟怎么辦
1、右擊“我的電腦”,選擇“屬性”項。
2、在打開的系統(tǒng)屬性窗口中選擇“高級系統(tǒng)設置”項進入。
3、在打開的“系統(tǒng)屬性”窗口中,切換至“高級”選擇卡,然后點擊“系統(tǒng)和故障恢復 設置”按鈕。
4、在打開的窗口中取消勾選“自動重啟啟動”項并按確認即可。
5、當電腦在使用的過程中產(chǎn)生藍屏時,我們就可以進入“系統(tǒng)日志”管理器中查看產(chǎn)生系統(tǒng)失敗的根源啦。打開“運行”對話框,輸入命令“eventvwr.msc”即可查看日志信息,從中定位系統(tǒng)產(chǎn)生失敗的原因。
6、當然,我們也可以通過禁用某些開機項來嘗試修復系統(tǒng)。打開“運行”對話框,輸入命令“msconfig”進入“系統(tǒng)配置實用程序”界面,勾選“常規(guī)”選項卡下的“診斷啟動”選項。
7、還有一種修復計算機藍屏或重啟故障的方法,就是在電腦啟動時按“F8”進入系統(tǒng)故障菜單,從中選擇“安全模式”進入或“最后一次正確的配置”項進入系統(tǒng),將及有可能修復系統(tǒng)。
8、當然,如果以上方法均不能解決問題,那么建議您還是重新安裝一下系統(tǒng),畢竟安裝系統(tǒng)所耗費的時間相對修復所用時間要少許多。一勞永逸之事才是王道。
相關閱讀:電腦自動重啟方法
方法一:
1、打開控制面板-管理工具-計劃任務程序
2、創(chuàng)建基本任務,名稱欄目,輸入“定時重啟”,下一步;
3、在窗口里,有每天、每周、每月、一次各種選擇,這里小誠選擇一次,這次執(zhí)行完就失效,您可以根據(jù)自己的情況進行選擇哈,點擊下一步;
4、設置重啟的日期、時間點,下一步;
5、選擇啟動程序,下一步;
6、在打開頁面里,點擊瀏覽,找到C;\Windows\System32\Shutdown.exe,點擊打開;
7、在添加參數(shù)欄目里輸入“-r”(重啟),進行下一步
8、點擊完成,即可實現(xiàn)自動重啟了
方法二:
網(wǎng)上搜索個自動重啟關機類軟件,這比較多,簡單設置一下就可以了。
自動重啟Apache服務器的Shell腳本相關文章: