linux - 日志文件监控和输出特定格式
问题描述
我有一个日志文件,其中显示以下信息。它也有“注销”的行。我需要从已登录的行中过滤掉已注销的行。然后从登录行中删除特定信息。
YYYY.MM.DD-HH.MM.SS: 'IPv4address backendidnumber:Username(DBID#)' logged in
IPv4地址可以改变。Backendidnumber 是一个永远不会改变的 17 位数字。DBID# 可以为 1 并不断增长。这个数字也会随着用户名的变化而变化,因为它是一个与会话相关联的数字。
我目前有以下代码每分钟从一组下载的日志中监视一个日志文件。
#!/bin/bash
tail -n0 -F all-logins.log | \
while read line ; do
echo "$line" | grep "logged in"
if [ $? = 0 ]
then
curl -sfSL -X POST -H "Content-Type: application/json" -d "{\"content\":\"$line\"}" "webhook html url here"
fi
done
我不希望张贴整行。我只是想让消息显示这个
Username logged in at HH:MM on MM.DD.YYYY
用户名也可以在名称中包含空格以及数字
解决方案
推荐阅读
- r - `geom_smooth` 在公式中具有可变次数多项式
- kivy - Kivy 在 BoxLayout 中放置 FloatLayout
- python - Venv 没有从虚拟环境运行可执行文件
- javascript - 我如何在 javascript 中正确使用价值
- http - 如何正确处理使用 Mux 的 Go 的可选查询参数?
- react-native - 反应原生的函数内的平面列表
- spring - @Bean 在没有 @Configuration 的情况下工作。没有@Configuration,它怎么能工作?
- r - 嗨,我正在尝试将分类转换为数值,但最终出现错误找不到函数“%>%”
- javascript - 我希望下拉菜单项位于垂直栏中
- sql-server - 将每位客户的销售额与去年的销售额进行比较