场景
- 开发环境搜集错误日志发送到企业微信群,让开发人员关注错误
- 服务器日志文件每天有归档,新建了同名文件,防止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 为对应的接口地址