久久青草精品A片狠狠,日韩欧美视频一区二区,亚洲国码AV日韩,国产精品黄在

幫助中心 >  技術知識庫 >  云服務器 >  服務器教程 >  linux下Web服務器CPU負載超過閥值自動重啟腳本

linux下Web服務器CPU負載超過閥值自動重啟腳本

2016-08-31 07:56:17 14768

說明:

操作系統:CentOS

web服務器:apache

問題:

搜索引擎的爬蟲導致網站在某一段時間內訪問量劇增,服務器壓力過大,網站訪問超時、頁面無法打開。

解決辦法:

定時監控服務器負載,超過一定閥值后,自動重啟web服務。

apache安裝目錄:/usr/local/apache

腳本運行日志文件:/usr/local/apache/check_cpu_load.log

腳本存放目錄:/home/crontab

cd /home/crontab

vi check_cpu_load.sh #編輯,添加以下代碼

#!/bin/sh

#crontab: */5 * * * * /home/crontab/check_cpu_load.sh >> /usr/local/apache/check_cpu_load.log

TOP_SYS_LOAD_NUM=3

SYS_LOAD_NUM=`uptime | awk '{print $(NF-2)}' | sed 's/,//'`

echo $(date +"%y-%m-%d") `uptime`

if [ `echo "$TOP_SYS_LOAD_NUM < $SYS_LOAD_NUM"|bc` -eq 1 ]

then

echo "#0#" $(date +"%y-%m-%d %H:%M:%S") "pkill httpd" `ps -ef | grep httpd | wc -l` >> /usr/local/apache/check_cpu_load.log

/usr/local/apache/bin/apachectl stop

sleep 5

pkill httpd

sleep 5

for i in 1 2 3

do

if [ `pgrep httpd | wc -l` -le 0 ]

then

/usr/local/apache/bin/apachectl start

sleep 30

echo "#1#" $(date +"%y-%m-%d %H:%M:%S") "start httpd" `ps -ef | grep httpd | wc -l` >> /usr/local/apache/check_cpu_load.log

fi

done

else

if [ `pgrep httpd | wc -l` -le 0 ]

then

/usr/local/apache/bin/apachectl start

sleep 30

echo "#2#" $(date +"%y-%m-%d %H:%M:%S") "start httpd" `ps -ef | grep httpd | wc -l` >> /usr/local/apache/check_cpu_load.log

fi

fi

:wq! #保存退出

crontab -e #添加計劃任務

*/5 * * * * /home/crontab/check_cpu_load.sh >> /usr/local/apache/check_cpu_load.log

:wq! #保存退出

service crond restart #重啟計劃任務

通過以上設置后,當服務器負載超過3時,在5分鐘內會自動運行腳本,重啟apache服務,使網站恢復訪問。


提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: