国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

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

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

2016-08-31 07:56:17 13278

說明:

操作系統(tǒng):CentOS

web服務(wù)器:apache

問題:

搜索引擎的爬蟲導(dǎo)致網(wǎng)站在某一段時間內(nèi)訪問量劇增,服務(wù)器壓力過大,網(wǎng)站訪問超時、頁面無法打開。

解決辦法:

定時監(jiān)控服務(wù)器負載,超過一定閥值后,自動重啟web服務(wù)。

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 #添加計劃任務(wù)

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

:wq! #保存退出

service crond restart #重啟計劃任務(wù)

通過以上設(shè)置后,當(dāng)服務(wù)器負載超過3時,在5分鐘內(nèi)會自動運行腳本,重啟apache服務(wù),使網(wǎng)站恢復(fù)訪問。


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

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

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

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