shell指定时间内监听日志并触发curl请求

场景

  • 开发环境搜集错误日志发送到企业微信群,让开发人员关注错误
  • 服务器日志文件每天有归档,新建了同名文件,防止tail执行时一直没有释放而没有读新的文件,所以脚本并不是一直常驻后台,用到的时候起一个进程。适用于测试和预发布环境

代码

end_time=($(date +%s -d '+30 seconds')) && tail -f ***.log | \
while read LogLine; \
do \
if [[ "${LogLine}" == *"match_string"* ]]; then \
curl -X POST http://mydomain.com/notify -H 'Content-Type: application/x-www-form-urlencoded' \
 -d "message=${LogLine}"; \
fi; \
current_time=$(date +%s);  \
if [[ $current_time -gt $end_time ]]; then break; fi; \
done
  • end_time 设置命令多少秒后结束
  • tail -f ***.log ***.log为指定对应的日志文件
  • match_string 要匹配出含有match_string(替换成自己想匹配的字符串)的日志条目
  • http://mydomain.com/notify 为对应的接口地址
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值