上都海奶茶馆 发表于 2018-8-19 08:36:57

shell之服务异常监测案例

  例题一:web服务器nginx脚本服务监控
  #cat jiance_ng.sh
  #!/bin/bash
  if ! ss -lntup|grep ginx &>/dev/null
  then
  /etc/init.d/nginx start
  echo "nginx dead,but it's OK"|mail -s "whw11" 11392XXX@qq.com
  fi
  http_num=$(curl -I www.oldboyedu.com -s -w %{http_code} -o /dev/null)
  if [ ${http_num} -ne 200 ];then
  /etc/init.d/nginx start
  echo "nginx dead,but it's OK"|mail -s "whw11" 11392XXX@qq.com
  fi
  例题二:mysql服务器服务监控
  # cat jiance_db.sh
  #!/bin/bash
  if ! ps -ef|grep ysqld &>/dev/null
  then
  systemctl start mariadb.service &>/dev/null
  echo "mysql dead,but it is OK"|mail -s "whw111" 1139210923@qq.com
  fi
  例题三:memcache缓存服务器监控

[*]# cat jiance_mem2.sh****  #!/bin/bash
  port_status=$(ss -lntup|grep 11211|wc -l)
  key1="oldboy0987"
  printf "set key011 0 0 10\r\n${key1}\r\n"|nc 10.0.0.21 11211 &>/dev/null
  key2=$(printf "get key011\r\n"|nc 10.0.0.21 11211|sed -n '2p'|tr -d '\r')
  if [ $port_status -eq 0 ];then
  systemctl stop memcached.service
  systemctl start memcached.service
  if ! [ ${key1} == ${key2} ];then
  systemctl restart memcached.service
  echo "memcache dead,but it's OK"|mail -s "whw11" 1139210923@qq.com
  fi
  fi
  例题四:打印选择菜单,按照选择一键安装不同的Web服务****
  #cat yijian.sh
  #!/bin/bash
  cat /dev/null;then
  killall rsync
  sleep 3
  action "rsync stop" /bin/true
  else
  echo "rsync是停止状态"
  fi
  ;;
  restart)
  if ss -lntup|grep rsync &>/dev/null;then
  pkill -f rsync
  rsync --daemon
  action "rsync stop" /bin/true
  action "rsync start" /bin/true
  else
  rsync --daemon
  action "rsync stop" /bin/false
  action "rsync start" /bin/true
  fi
  ;;
  *)
  echo "输入指令有误:(start|stop|restart)"
  esac

页: [1]
查看完整版本: shell之服务异常监测案例