1. 程式人生 > >Shell練習(九)

Shell練習(九)

linux shell

習題1:找規律打印數字

要求:請詳細查看如下幾個數字的規律,並使用shell腳本輸出後面的十個數字。
10 31 53 77 105 141 …….

提示:相鄰兩個數差值的差值有規律

參考答案:


習題2:封IP

要求:根據web服務器上的訪問日誌,把一些請求量非常高的ip給拒絕掉!

分析: 我們要做的,不僅是要找到哪些ip請求量不合法,並且還要每隔一段時間把之前封掉的ip(若不再繼續請求了)給解封。 所以該腳本的關鍵點在於定一個合適的時間段和閾值。

比如, 我們可以每一分鐘去查看一下日誌,把上一分鐘的日誌給過濾出來分析,並且只要請求的ip數量超過100次那麽就直接封掉。 而解封的時間又規定為每半小時分析一次,把幾乎沒有請求量的ip給解封!

參考日誌文件片段:

137.23.21.127 [20/Jan/2018:00:01:24 +0800] www.testbbs.com “/bbs/thread-5622-3-1.html” 200 “-” “Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)”

54.124.50.87 [20/Jan/2018:00:01:34 +0800] www.testbbs.com “/bbs/search.php?mod=forum&srchtxt=LNMP&formhash=8f0c7da9&searchsubmit=true&source=hotsearch” 200 “-” “Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)”

參考答案:


習題3:監控httpd進程

要求:在服務器上,寫一個監控腳本。

1. 每隔10s去檢測一次服務器上的httpd進程數,如果大於等於500的時候,就需要自動重啟一下apache服務,並檢測啟動是否成功?

2. 若沒有正常啟動還需再一次啟動,最大不成功數超過5次則需要理解發郵件通知管理員,並且以後不需要再檢測!

3. 如果啟動成功後,1分鐘後再次檢測httpd進程數,若正常則重復之前操作(每隔10s檢測一次),若還是大於等於500,那放棄重啟並需要發郵件給管理員,然後自動退出該腳本。發郵件腳本為之前mail.py

參考答案:



【答案明天中午12點前公布!】

Shell練習(九)