我们在监控和管理服务器同时,一方面为了简化管理,另一方面就是为了偷懒. 下面脚本为监控mysql所做:
1.众所周知mysql使用3306端口进行通信,明白这点就很重要
2.建立脚本名为 mysqlstat.sh
vi mysqlstat.sh
while [ "$UID" -eq 0 ]
do
PORT=`netstat -na |grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $5}'`
if [ $PORT = 3306 ]
then
echo "mysql is running"
else
echo "mysql is stopping"
/etc/rc.d/init.d/mysqld restart
fi
sleep 10
done
3.授权 chmod 766 mysqlstat.sh
4.查看效果
[root@localhost ~]# sh mysqlstat.sh
mysql is running
mysql is running
mysql is running
以标准输出在终端。
后记:本脚本在2008.06.24那天写了,今天(2008.07.05)看了一下脚本怎么看有点不对劲当然脚本没有问题,是这一段`netstat -na |grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $5}'当然能够打印出’3306‘,但是太冗长了哎当时糊涂了,现在改正一下哈!把前面那段替换为`netstat -na |awk -F[:" "]+ '/3306/ {print $5}' 呵呵,消瘦了不少也是能够打印‘3306‘ 建议!在对文本进行处理时虽然grep,ser 比较强大,但是还是awk来的快而且功能巨大!!!
阅读(695) | 评论(0) | 转发(0) |