以下是一个示例Bash脚本,用于监视日志文件并在匹配到特定单词时发送邮件。
#!/bin/bash
LOG_FILE="/path/to/logfile.log" # 日志文件路径
KEYWORD="error" # 要匹配的关键词
EMAIL_ADDRESS="your_email@example.com" # 收件人邮箱地址
tail -fn0 "$LOG_FILE" | \
while read -r line ; do
echo "$line" | grep -i "$KEYWORD" > /dev/null
if [ $? = 0 ]
then
echo "发现匹配的关键词: $KEYWORD"
echo -e "Subject: 日志监控\n\n日志文件 $LOG_FILE 中发现匹配的关键词: $KEYWORD" | \
sendmail -t "$EMAIL_ADDRESS"
fi
done
该脚本使用tail -fn0
命令来实时监视日志文件的更新。tail -f
选项用于实时追踪文件的新内容,n0
选项用于禁止输出文件的初始内容。然后,脚本使用read
命令逐行读取新添加到日志文件的内容。
脚本使用grep
命令来检查每行是否包含关键词。如果关键词匹配成功,则发送一封包含匹配信息的电子邮件给指定的邮箱地址。
请注意,为了使脚本能够发送电子邮件,您需要在系统上配置并正确安装sendmail
命令。