案例需求

判断计算机某个端口是否为OPEN状态,且能正常访问

脚本应用场景:

服务监控脚本+监控平台
手动监控

解决问题

实时掌握服务的运行状态,及时处理问题。

脚本思路

1、使用telnet命令连接远端机器的远端端口
2、接收连接反馈并分析结果
3、分析文件内容
4、打印结果

实现代码

  1. #!/bin/bash
  2. #Description:
  3. #Author: www.zutuanxue.com
  4. #Created Time:
  5. #监控一个服务端口
  6. #main
  7. temp_file=`mktemp port_status.XXX`
  8. #1、判断依赖命令telnet是否存在
  9. [ ! -x /usr/bin/telnet ]&&echo "telnet: not found command"&& exit 1
  10. #2、测试端口 $1 IP $2 port
  11. ( telnet $1 $2 <<EOF
  12. quit
  13. EOF
  14. ) &>$temp_file
  15. #3、分析文件中的内容,判断结果
  16. if egrep "\^]" $temp_file &>/dev/null;then
  17. #4、打印结果
  18. echo "$1 $2 is open"
  19. else
  20. echo "$1 $2 is close"
  21. fi
  22. #5、删除临时文件
  23. rm -f $temp_file

案例思考

#监控方法#1)通过systemctl service 服务启动状态 #2)lsof 查看端口是否存在#3)查看进程是否存在 注意 压力过大 无法响应 | 服务down了 上述东西还在 监测不准确 #4)测试端口是否有响应 推荐 #telnet 协议