背景

监控远程的一台机器的存活状态,当发现宕机时发一封邮件给你自己

需求

通过ping命令确定服务器是否在线

  1. #!/bin/bash
  2. n=`ping -c5 114.115.206.63 | grep 'packet' | awk -F'%' '{print $1}' | awk '{print $NF}'`
  3. #ping ip 只显示带有packet的行 以%分割 打印出第1列 显示最后一列的丢包率
  4. m=1182350036@qq.com
  5. if [ -z "$n" ]
  6. #如果$n没有被赋值
  7. then
  8. echo "脚本有问题!"
  9. python3 mail.py $m "检测机器存活脚本$0有问题,获取变量值为空!" #发邮件给管理员
  10. exit
  11. else
  12. n1=`echo $n|sed 's/[0-9]//g'` #将字符替换,这里替换完为空才是正常的
  13. if [ -n "$n1" ] #如果 n1 不是空,还有字符 则
  14. python3 mail.py $m "检测机器存活脚本$0有问题,获取变量的值不是纯数字"
  15. exit
  16. fi
  17. fi
  18. while :
  19. do
  20. if [ $n -ge 50 ]
  21. then
  22. python mail.py $m "机器宕机,丢包率是$n%"
  23. fi
  24. sleep 30
  25. done