一、任务:
编写一个脚本 log_monitor.sh,用来监控 Nginx 的错误日志。
定义日志文件的路径(例如
/var/log/nginx/error.log)。检查文件是否存在。
统计最近 100 行日志中,出现了多少次 "error"(忽略大小写)。
如果错误次数超过 5 次,输出报警信息。
二、创建文件
vim /root/log_monitor.sh三、写入完成任务所需代码
#!/bin/bash
# 1. 定义变量
LOG_FILE="/var/log/nginx/error.log"
WARN_COUNT=5
echo "脚本运行时间:$(date '+%Y-%m-%d %H:%M:%S')"
# 2. 检查文件是否存在 (复习 -f 用法)
if [ ! -f "$LOG_FILE" ]; then
echo "🚨 错误:日志文件 $LOG_FILE 不存在!请检查路径。"
exit 1
fi
# 3. 统计最近 100 行中的 error 数量
# tail 取最后100行 -> grep 找 error -> wc -l 统计行数
ERROR_COUNT=$(tail -n 100 "$LOG_FILE" | grep -ic "error")
echo "🔍 最近 100 行日志中发现了 $ERROR_COUNT 个错误。"
# 4. 判断并报警
if [ "$ERROR_COUNT" -gt "$WARN_COUNT" ]; then
echo "🚨 警告!错误数量超过阈值 ($WARN_COUNT),请立刻检查日志!"
# 这里可以加上发送邮件的代码
else
echo "✅ 系统日志正常。"
fi四、赋予文件执行权限
chmod +x /root/log_monitor.sh五、运行脚本文件
/root/log_monitor.sh
原创
简单日志监控脚本
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法