四虎影视在线影院在线观看,小s货再浪些再咬紧点h,国产精品水嫩水嫩,97精产国品一二三产区

Board logo

標(biāo)題: [分享] 負(fù)載高,自動(dòng)重啟mysql,apache [打印本頁(yè)]

作者: ceodiy    時(shí)間: 2013-4-28 15:43     標(biāo)題: 負(fù)載高,自動(dòng)重啟mysql,apache

服務(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 你可以自定義。


作者: ceodiy    時(shí)間: 2013-4-28 16:39

沒(méi)人。。。。。都是初學(xué)者啊
作者: ceodiy    時(shí)間: 2013-4-29 23:05

沒(méi)人嗎?一個(gè)都沒(méi)有?
作者: admin    時(shí)間: 2013-4-30 09:32

#!/bin/sh
# crontab: */3 * * * * /www/wdlinux/tools/loadavg_restart_apache.sh >> /var/log/restart_apache.log
/usr/sbin/ntpdate cn.pool.ntp.org  >> /var/log/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`
     service httpd 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


             service httpd start

      service wdapache 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


             service httpd start

       service wdapache start


             sleep 30


             echo "#2#" $(date +"%y-%m-%d %H:%M:%S") "start httpd" `ps -ef | grep httpd | wc -l`
         fi


fi

將以上文件,保存在 /www/wdlinux/tools/loadavg_restart_apa_my.sh

然后在  

crontab -e

添加

*/3 * * * * /www/wdlinux/tools/loadavg_restart_apa_my.sh >> /var/log/restart_apa_my.log

*/3 ***** 表示3分鐘,/www/wdlinux/tools/loadavg_restart_apa_my 你可以自定義。


作者: ceodiy    時(shí)間: 2013-5-2 19:51

謝謝老大。這里邊就你一個(gè)高手
作者: wwdahaiww    時(shí)間: 2013-5-3 09:09

還是比較實(shí)用的
作者: ppopcn    時(shí)間: 2013-5-25 22:21

老大,里面的sleep 8 、sleep 30這些參數(shù)代表什么呢?

可否給改一個(gè)自動(dòng)重啟服務(wù)器的shell腳本呢?當(dāng)超出指定的負(fù)載后,自動(dòng)執(zhí)行reboot的命令

麻煩老大業(yè)余時(shí)間給修改一個(gè)
作者: ppopcn    時(shí)間: 2013-5-25 22:26

老大,里面的sleep 8 、sleep 30這些參數(shù)代表什么呢?

可否給改一個(gè)自動(dòng)重啟服務(wù)器的shell腳本呢?當(dāng)超出指定的負(fù)載后,自動(dòng)執(zhí)行reboot的命令

麻煩老大業(yè)余時(shí)間給修改一個(gè)
作者: admin    時(shí)間: 2013-5-26 18:31

延時(shí)8,30秒
作者: hmzslhh    時(shí)間: 2017-2-24 20:18

root身份登錄到命令行

輸入crontab -e

按下a鍵進(jìn)入到編輯模式

輸入 */3 * * * * /www/wdlinux/tools/loadavg_restart_apa_my.sh >> /var/log/restart_apa_my.log

同時(shí)按下ctrl+c退出編輯模式

按下shift+: 輸入wq 退出 crontab
作者: hmzslhh    時(shí)間: 2017-2-24 20:19

不知道怎么來(lái)檢查有沒(méi)有配置成功哈,不知道效果如何
作者: xunzhao521    時(shí)間: 2019-8-16 09:41

mysql_listen.sh
#!/bin/bash
pgrep -x mysqld &> /dev/null

if [ $? -ne 0 ]

then

echo "At time: `date` :MySQL  is stop .">> /var/log/mysql_messages

service mysql start
#echo "At time: `date` :MySQL server is stop."

else

echo "MySQL server is running ."

fi


以上這個(gè)可以嗎




歡迎光臨 WDlinux官方論壇 (http://cd-genova.com/bbs/) Powered by Discuz! 7.2