使用nc_monitor.sh监控域名并邮件报警:自动化网络检查与故障通知

需积分: 10 0 下载量 64 浏览量 更新于2024-09-06 收藏 2KB TXT 举报
"nc_monitor.sh" 是一个用于网络监控的脚本,其主要功能是对指定的域名(如 "baidu.com" 和 "sina.com")进行定期检查,确保服务器上的 80 端口能够正常响应。脚本通过 netcat (nc) 工具发送请求并记录结果到临时文件,然后统计成功响应的次数。如果在5次尝试中,成功响应的次数少于2次,意味着可能存在网络问题,脚本将启动 ping 操作进一步验证,并在检测到异常后通过邮件发送报警。 首先,脚本作者 Zhou 提醒用户在运行此脚本之前,确保服务器上已经安装了 traceroute 和 nc 这两个工具。如果没有安装,可以通过 yum 命令进行安装: - `yum install traceroute -y` - `yum install nc -y` 脚本定义了一个变量 `SHELL_FOLDER`,用于获取脚本所在的目录路径。`filename_pre` 是根据当前日期和时间生成的唯一标识符,用于区分不同时间点的日志文件。本地主机 IP 地址(`local_add`)和公共 DNS IP 地址(`localIP`)被用于辅助网络检查。 脚本的核心部分是 `nc_check` 函数,它在一个循环中,对指定的 URL 进行 5 次尝试的连接,每轮使用 `-v-w1 80` 参数向 80 端口发送连接请求,并将结果输出到 `${SHELL_FOLDER}/${1}.txt` 文件中。之后,它计算文件中 "succeeded" 字符出现的次数(即成功连接的次数),如果这个计数小于2,则进入下一层判断。 如果 ping 操作同样未能得到足够的响应,脚本认为网络可能存在问题。此时,脚本会将目标 IP 或域名作为参数传递给 `ping` 命令,执行1000次连续的ping请求,并设置间隔时间为0.01秒,确保高精度的监测。ping的结果也会被追加到日志文件中。如果网络连接不可达,脚本会利用邮件功能发送报警,通过指定的邮件地址 `mailto="recei@163.com"` 发送通知。 此外,脚本的执行频率可以通过 crontab 定时任务进行配置。例如,使用 `crontab -e` 添加一条定时任务 `*/1 * * * * /root/nc_monitor.sh`,表示每分钟执行一次脚本。 "nc_monitor.sh" 脚本提供了一种简单而实用的方法来监控网络连通性和服务器端口的可用性,通过邮件报警机制确保及时发现并处理潜在的问题。
2023-07-13 上传