转载请注明地址来源: 尊重劳动成果
由于运维人员不可能时时查看服务器状态,尤其是当服务器数量多时,是很费时。就希望运维人员自己定义一些自动化任务脚本,这个现的很重要哦。尤其是对于懒人而言!!!
下面我只举一个监控mysql状态的脚本,并且加上自动发送短信的功能,方便运维人员去管理数据库。
#!/bin/bash
PORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $5}'`
MYSQLIP=`ifconfig eth0|awk '/inet/{print $2}'|cut -c 6-`
SERVICE=`chkconfig --list mysql |awk '{print $1}'`
while [ `whoami` == "root" ]
sleep 10
do
if [ "$PORT" == "3306" ];then
echo "mysql is running......"
else
echo "restart mysql"
/etc/init.d/mysqld restart
mail -s "warn!server: $MYSQLIP mysql is down" 979835161\@qq.com < /var/log/mymsg (邮件我就用qq的了,哈哈 )
/usr/local/tools/fx/fetion --mobile=159。。。。 --pwd=pkfeiyang --msg-utf8="$MYSQLIP mysql is startting please wait for 30s !!! \n$(date +%D\ %H:%M)" --msg-type=1 --to=159000000 (这是用飞信机器人,需要自己安装
/usr/sbin/shell/mysql2.sh 这是我调用第二个脚本,去执行检查数据库是否启动成功
fi
break
done
在付第二个脚本
cat mysql2.sh
#!/bin/bash
PORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $5}'`
MYSQLIP=`ifconfig eth0|awk '/inet/{print $2}'|cut -c 6-`
SERVICE=`chkconfig --list mysql |awk '{print $1}'`
while [ `whoami` == "root" ]
sleep 20
do
if [ "$PORT" == "3306" ];then
/usr/local/tools/fx/fetion --mobile=15901000 --pwd=pkfeiyang --msg-utf8="$MYSQLIP mysql start is ok!! \n$(date +%D\ %H:%M)" --msg-type=1 --to=1590000 ####这是检查启动是否成功,成功发送短信,不成功则执行下面的else语句。。
echo "mysql restart successful......"
else
echo "mysql restart failure......"
/usr/local/tools/fx/fetion --mobile=1590000000 --pwd=pkfeiyang --msg-utf8="$MYSQLIP mysql start is failure!! \n$(date +%D\ %H:%M)" --msg-type=1 --to=159000000 #发送启动不成功信息
fi
break
done
下面是脚本参考:
我只是把这个脚本跟丰富一下,尊重提供者的劳动成果!!
也希望更多的友人,给我的脚本提供建议
阅读(1063) | 评论(0) | 转发(0) |