Chinaunix首页 | 论坛 | 博客
  • 博客访问: 227824
  • 博文数量: 47
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 775
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-12 10:50
文章分类

全部博文(47)

文章存档

2011年(1)

2009年(4)

2008年(42)

我的朋友

分类:

2008-06-24 14:25:02

 我们在监控和管理服务器同时,一方面为了简化管理,另一方面就是为了偷懒. 下面脚本为监控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来的快而且功能巨大!!!
阅读(667) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~