北京 高顯俊
目前網(wǎng)站可用性監(jiān)控主要有網(wǎng)站監(jiān)控平臺(tái)自動(dòng)監(jiān)控和人工監(jiān)控等手段。網(wǎng)站監(jiān)控平臺(tái)自動(dòng)監(jiān)控的實(shí)時(shí)性高,比較適合網(wǎng)站數(shù)量多的情況,但需要經(jīng)費(fèi)的投入。人工監(jiān)控實(shí)時(shí)性不高,監(jiān)控效果不佳,而且費(fèi)時(shí)費(fèi)力。
筆者根據(jù)工作需要,利用WGET 工具對(duì)學(xué)校網(wǎng)站的可用性進(jìn)行監(jiān)控,取得了較好的效果。
WGET 是Linux 下運(yùn)行在命令行模式的常用文件下載工具,支持HTTP、HTTPS 和FTP 等協(xié)議。簡單的wget 文件下載命令如圖1 所示。
監(jiān)控網(wǎng)站可用性時(shí),只需要監(jiān)控網(wǎng)站能不能正常訪問,并不需要下載整個(gè)頁面,可在WGET 中通過添加—spider 參數(shù)只請(qǐng)求頁面狀態(tài)但不下載頁面,并添加-S 參數(shù)輸出HTTP 響應(yīng)頭,如圖2所示。
通過shell 腳本解析HTTP 響應(yīng)頭,如果Response Code 為200 說明此URL 對(duì)應(yīng)的網(wǎng)站訪問正常;如果Response Code 不是200 或者沒有響應(yīng),則網(wǎng)站訪問不正常。對(duì)本次監(jiān)控的可用性狀態(tài)與上次監(jiān)控的狀態(tài)進(jìn)行比較,如果可用性狀態(tài)發(fā)生了變化(如從可用狀態(tài)變成不可用狀態(tài),或者從不可用狀態(tài)變成可用狀態(tài)),再結(jié)合短信平臺(tái)等工具及時(shí)通知管理人員,從而實(shí)現(xiàn)對(duì)網(wǎng)站可用性的有效監(jiān)控。主要shell 腳本如下:
圖1 文件下載命令
圖2 添加—spider 參數(shù)
將shell 文件添加到linux 的crontab 計(jì)劃任務(wù)中定時(shí)執(zhí)行就可實(shí)現(xiàn)網(wǎng)站可用性監(jiān)控。
如果將監(jiān)控url 做成參數(shù)傳給shell 文件,可輕松實(shí)現(xiàn)多個(gè)網(wǎng)站的可用性監(jiān)控。