服务器维护脚本整合(含监控NMP小脚本)

服务器维护脚本

1.用于杀死mysql里出现的僵死进程

#!/bin/bash
while :
do
  n=`/usr/local/mysql/bin/mysqladmin -uroot -p123456quanlian processlist | grep -i sleep | wc -l`
  date=`date +%Y%m%d\[%H:%M:%S]`
  echo $n

  if [ "$n" -gt 10 ]
  then
    for i in `/usr/local/mysql/bin/mysqladmin -uroot -p123456quanlian processlist | grep -i sleep | awk '{print $2}'`
    do
      /usr/local/mysql/bin/mysqladmin -uroot -p123456quanlian kill $i
    done
    echo "sleep is too many i killed it" >> /tmp/sleep.log
    echo "$date : $n" >> /tmp/sleep.log
  fi
sleep 5
done


2.自动显示硬盘使用情况

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/sbin:/sbin

export PATH
unset USERNAME

df -lh


3.mysql日志切割

#/bin/bash
aa=/var/log/mysqld/mysql.err
bb=/usr/local/mysql/var/mysql.log
cc=/var/log/mysqld/query.log
mv $aa /var/log/mysqld/mysql`date +%Ym%d`.err
mv $bb /var/log/mysqld/mysql`date +%Ym%d`.log
mv $cc /var/log/mysqld/query`date +%Ym%d`.log
/usr/local/mysql/bin/mysqladmin -uroot -pXXX --socket=/tmp/mysql.sock flush-logs
find /var/log/mysqld3308 -ctime +7 -exec rm -rf {} \;

4.检查mysql状态

#/bin/bash
service mysqld status &> /dev/null
if [ $? -ne 0 ] ; then
    echo "At time: 'data': mysql service is down. " >> /var/log/messages
    service mysqld restart

fi


5.备份脚本

数据库备份脚本

#!/bin/bash

DAY=`date+%Y%m%d`

SIZE=`du-sh /data/mysql/3306/data/fmcmall`

MYSQLDUMP="/usr/local/webserver/mysql/bin/mysqldump"

MYSQLPASSWORD=`cat/data/save/mysql_root`

echo"Date: $DAY" >> /tmp/dbinfo.txt

echo"Date Size: $SIZE" >> /tmp/dbinfo.txt

$MYSQLDUMP-uroot -p$MYSQLPASSWORD fmcmall1203 > /data/dbbak/fmcmall.sql

tar zcvf/data/dbbak/cncar_dbbak/fmcmall-${DAY}.tar.gz /data/dbbak/fmcmall.sql/tmp/dbinfo.txt

rm -rf/tmp/dbinfo.txt

rm -rf/data/dbbak/fuyidata.sql

 

 

6.物理文件备份脚本

#!/bin/bash

DAY=`date+%Y%m%d`

cd/data/mfcmall/web/

#SIZE=`du-sh cncar`

echo"Date: $DAY" >> /tmp/dbinfo.txt

#echo"Date Size: $Size" >> /tmp/dbinfo.txt

tar zcvf/data/web_bak/www_cncar_bak/cncarweb_bak-${DAY}.tar.gz /data/mfcmall/web/cncar/--exclude=/data/mfcmall/web/cncar/temp/caches/* --exclude=/data/mfcmall/web/cncar/data/files/store_23_old/*--exclude=/data/mfcmall/web/cncar/data/files/store_23_new/*

rm -rf/tmp/dbinfo.txt

 

7.查看服务器系统信息

#!/bin/bash

THE_CPU=`cat/proc/cpuinfo | grep name | cut -f2 -d: | uniq -c`

cpu=`cat/proc/cpuinfo | grep physical | uniq -c `

system=`getconfLONG_BIT`

neichun=`free`

neihe=`uname-a`

eth=`dmesg| grep -i eth`

issue=`cat/etc/issue`

echo"一..........................CUP 型号"

echo$THE_CPU

echo"二..................CPU 实际颗数核数"

echo $cpu

echo"三..........................系统位数"

echo$system

echo"四..........................内存信息"

echo$neichun

echo"五..........................内核信息"

echo$neihe

echo"六..........................网卡信息"

echo $eth

echo"七....................系统发行版信息"

echo$issue

 

8.检测网站页面是否正常

#!/bin/bash

wget http://www.cncar.com/test200.php  --spider

c_monitor=$?

if [$c_monitor = "1" ];

then

echo"www.efuyi.com is down,服务器网站不能正常访问,请马上汇报哦, time: " $(date+"%y-%m-%d %H:%M:%S") "restart lnmp.. " | mail -s"Critical Info: Website is offline." 15218834160@139.com

/usr/local/webserver/php/sbin/php-fpmrestart

echo"restart lnmp: php-fpm"

fi


以上 “8” 的补充:

监控NMP脚本

[root@www shell]# cat check_PHP_MYSQL_NGINX.sh
#!/bin/bash
wget http://www.cncar.com/test200.php  --spider
c_monitor=$?

#nginx返回的错误状态为4,PHP返回的错误状态为8,所以,,,         但为了保障,加上如果返回状态不等于0(0属于正常),则发邮件警告

if [ $c_monitor = "1" ] || [ $c_monitor = "4" ] || [ $c_monitor = "8" ] || [ $c_monitor -ne "0" ];
then
echo "# Error no 200 status, time: " $(date +"%y-%m-%d %H:%M:%S") "WEB IS DOWN" | mail -s "Critical Info: Website is offline." 15218402325@139.com
fi

# wget http://www.cncar.com/index.php --spider
# c_monitor2=$?
# if [ $c_monitor2 = "1" ] || [ $c_monitor2 = "4" ] || [ $c_monitor2 = "8" ] || [ $c_monitor2 = "130" ];
# then
# echo "# Error no 200 status, time: " $(date +"%y-%m-%d %H:%M:%S") "hello" | mail -s "Critical Info: Website is offline." 15218402325@139.com
# fi

############################  check the MySQL(MYSQL在本地) ###################################

/etc/init.d/mysqld  status &> /dev/null
if [ $? -ne 0 ] ; then
    echo "At time: 'data': mysql service is down. " >> /var/log/messages
    echo "# MySQL Error status, time: " $(date +"%y-%m-%d %H:%M:%S") "MYSQL IS DOWN" | mail -s "Critical Info: Website is offline." 15218402325@139.com  
    /usr/bin/killall mysqld   
    /etc/init.d/mysqld  restart
fi


在PHP本地上监控PHP:

[root@www shell]# cat cheak_php_status.sh
#!/bin/bash
wget http://www.cncar.com/test200.php  --spider
c_monitor=$?
if [ $c_monitor = 1 ] || [ $c_monitor = 4 ] || [ $c_monitor = 8 ] || [$c_monitor -ne 0 ];
then
    /usr/local/webserver/php/sbin/php-fpm  restart
fi

这个是试图让PHP重启以临时恢复,回头再找问题。



 

9.rsync物理文件同步

#!/bin/bash

/usr/local/rsync/bin/rsync  -avz --progress --delete root@124.172.223.141::141fmcmall /data/dbbak/rsync_from_124.172.223.141_fmcmall/--password-file=/etc/rsyncd.pwd

 

10.检查“/var/log/messages” 文件是否存在,若存在则统计文件内容的行数,否则不做任何操作。

#!/bin/bsh
LogFile="/var/log/messages"
if [ -f $LogFile ]; then
    wc -l $LogFile
fi

 

11.检查portmap 进程是否已经存在,若存在则输出“portmap service is running.” , 否则检查是否存在“/etc/rc.d/init.d/portmap” 可执行脚本,存在则启动portmap 服务,否则提示 “no portmap script file.”

#!/bin/bash
pgrep portmap & > /dev/null
if [ $? -eq 0 ]; then
    echo "portmap service is running."
elif [ -x "/etc/rc.d/init.d/portmap" ] ; then
    service portmap start
else
    echo "no portmap script file."
fi



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值