【发布时间】:2022-07-12 17:18:42
【问题描述】:
我正在编写一个 bash 脚本来完成以下任务。
- 脚本每五分钟运行一次 wget,以从静态 url 下载小日志。
- 脚本使用 diff 查看日志文件中是否有新条目(新条目在日志文件末尾)。
- 如果找到新的日志条目 - 将新条目提取到新文件中,正确格式化,向我发送警报,返回 #1。
- 如果没有找到新的日志条目,请返回 #1。
wget "https://url-to-logs.org" -O new_log
if diff -q new_log old_log; then
echo "no new log entries to send."
else
echo "new log entries found, sending alert."
diff -u new_log old_log > new_entries
#some logic i have to take the output of "new_entries", properly format the text and send the alert.
rm -rf old_log new_entries
cp new_log old_log
rm -rf new_log
fi
还有一件事 - 每晚午夜,托管日志的服务器都会删除所有条目并显示一个空白文件,直到为新的一天创建新的日志条目。
我想我总是可以在午夜运行一个 cron 作业来运行“rm -rf”并“触摸”old_log 文件,但很好奇是否存在更简单的方法。
提前感谢您的任何/所有意见和帮助。
【问题讨论】:
-
一个简单的技巧是检查新文件中的行数,并与最后一个或更难的文件进行比较 - 解析日期/时间标题是否与日志行一起存在。
-
您的日志是否包含时间戳?
-
是的,它们包括时间戳。
标签: linux bash diff wget script