编写高效的Linux日志脚本可以帮助你更好地监控和管理系统日志。以下是一个基本的步骤和示例,展示如何编写一个高效的日志脚本。
grep, awk, sed, tail, watch等命令行工具来处理日志。cron设置定时任务,定期运行日志脚本。以下是一个简单的日志监控脚本示例,用于监控/var/log/syslog文件中的错误日志,并将结果发送到指定的邮箱。
#!/bin/bash
# 日志文件路径
LOG_FILE="/var/log/syslog"
# 邮箱地址
EMAIL="your_email@example.com"
# 错误日志关键字
ERROR_KEYWORD="ERROR"
# 获取当前日期和时间
DATE=$(date +"%Y-%m-%d %H:%M:%S")
# 使用grep过滤出包含错误关键字的日志行
ERROR_LOGS=$(grep "$ERROR_KEYWORD" "$LOG_FILE")
# 检查是否有错误日志
if [ -n "$ERROR_LOGS" ]; then
# 构建邮件内容
EMAIL_CONTENT="Error logs detected at $DATE:\n\n$ERROR_LOGS"
# 发送邮件
echo -e "$EMAIL_CONTENT" | mail -s "System Error Log Alert" "$EMAIL"
fi
使用cron设置定时任务,每5分钟运行一次脚本。
编辑crontab文件:
crontab -e
添加以下行:
*/5 * * * * /path/to/your/log_monitor_script.sh
logrotate工具进行日志轮转。awk或sed进行处理。通过以上步骤和示例,你可以编写一个基本的日志监控脚本,并根据实际需求进行扩展和优化。