服務(wù)器總是負(fù)載高,死機(jī)。從網(wǎng)上找了一篇,自動(dòng)重啟的,但是不符合wdcp的環(huán)境路徑,哪位懂得同學(xué),給改改,復(fù)合lnamp的環(huán)境,自動(dòng)重啟MySQL就行,最好休眠幾十秒。
========================================================================在網(wǎng)上查了不少資料,弄了個(gè)腳本來(lái)監(jiān)控服務(wù)器負(fù)載,超負(fù)荷 就自動(dòng)重啟apache,mysql的腳本, 適用于centos系統(tǒng),和自帶apache 和mysql,自定義編譯安裝的可能需要稍作調(diào)整。 linux時(shí)間也是個(gè)問(wèn)題,此腳本也添加了連接時(shí)間服務(wù)器同步校對(duì)時(shí)間。 /usr/sbin/ntpdate cn.pool.ntp.org >> /backup/gaige/upClock.log 2>&1 && /sbin/hwclock -w 現(xiàn)在分享給大家: 需要用的朋友,可以在你的終端,運(yùn)行一下代碼,就會(huì)自動(dòng)裝到你的服務(wù)器。
wget http://www.xiangguoqi.com/cmd/restart_apa_my_by_load.sh; sh restart_apa_my_by_load.sh 裝好后自動(dòng)腳本和運(yùn)行日志會(huì)在您服務(wù)器 /backup/gaige/ 下邊,你可以自行調(diào)整。 默認(rèn)自動(dòng)是3分鐘,你可以自行 crontab -e 修改 */3 * * * * /backup/gaige/loadavg_restart_apache.sh >> /backup/gaige/restart_apache.log ------------------- 手動(dòng)安裝腳本如下: 把以下代碼為sh腳本 #!/bin/sh
# crontab: */3 * * * * /backup/gaige/loadavg_restart_apache.sh >> /backup/gaige/restart_apache.log
/usr/sbin/ntpdate cn.pool.ntp.org >> /backup/gaige/upClock.log 2>&1 && /sbin/hwclock -w
sync
sync
echo 3 > /proc/sys/vm/drop_caches
TOP_SYS_LOAD_NUM=5
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
sync
echo "#0#" $(date +"%y-%m-%d %H:%M:%S") "pkill httpd" `ps -ef | grep httpd | wc -l`
echo "#0#" $(date +"%y-%m-%d %H:%M:%S") "pkill mysqld" `ps -ef | grep mysqld | wc -l`
/usr/sbin/apachectl stop
service mysqld stop
sleep 8
pkill httpd
pkill mysqld
sleep 8
for i in 1 2 3
do
if [ `pgrep mysqld | wc -l` -le 0 ]
then
/sbin/service mysqld start
sleep 30
echo "#1#" $(date +"%y-%m-%d %H:%M:%S") "start mysqld" `ps -ef | grep mysqld | wc -l`
fi
if [ `pgrep httpd | wc -l` -le 0 ]
then
/usr/sbin/apachectl start
sleep 30
echo "#1#" $(date +"%y-%m-%d %H:%M:%S") "start httpd" `ps -ef | grep httpd | wc -l`
fi
done
else
if [ `pgrep mysqld | wc -l` -le 0 ]
then
/sbin/service mysqld start
sleep 30
echo "#2#" $(date +"%y-%m-%d %H:%M:%S") "start mysqld" `ps -ef | grep mysqld | wc -l`
fi
if [ `pgrep httpd | wc -l` -le 0 ]
then
/usr/sbin/apachectl start
sleep 30
echo "#2#" $(date +"%y-%m-%d %H:%M:%S") "start httpd" `ps -ef | grep httpd | wc -l`
fi
fi 然后在 crontab -e 添加 */3 * * * * /backup/gaige/loadavg_restart_apa_my.sh >> /backup/gaige/restart_apa_my.log */3 ***** 表示3分鐘,/backup/gaige/loadavg_restart_apa_my 你可以自定義。 |