客户环境中有需要监视的URL页面,获取status状态码,记录到对应日志文件中。
如果无法访问出现其他status状态码则发送到指定邮箱中。
#!/bin/bash
# 要监控的URL
URL="http://example.com"
# 期望的状态码
EXPECTED_STATUS=200
# 日志文件路径
LOG_FILE="/var/log/url_monitor.log"
# 邮件接收者
EMAIL_RECIPIENT="[email protected]"
# 使用curl获取状态码
STATUS=$(curl -o /dev/null -s -w "%{http_code}" $URL)
# 记录日志
echo "$(date) - Checked URL $URL, status code: $STATUS" >> $LOG_FILE
# 检查状态码是否符合期望
if [ "$STATUS" -ne "$EXPECTED_STATUS" ]; then
echo "$(date) - URL $URL returned status $STATUS, expected $EXPECTED_STATUS. Alert sent." >> $LOG_FILE
# 发送邮件通知
echo "URL $URL returned status $STATUS, expected $EXPECTED_STATUS." | mail -s "URL Monitor Alert" $EMAIL_RECIPIENT
fi
安装配置mailx
sudo yum install mailx
编辑mailx
的配置文件/etc/mail.rc
,添加您的邮件服务 SMTP服务器信息和发件人邮箱信息
set smtp=smtp.example.com
set [email protected]
set smtp-auth-password=your_password
set [email protected]
调整脚本,把200改为2000触发异常状态,成功收到告警邮件
添加对应计划任务。