正则表达式清理日志

字段提取中正则表达式的使用:
提取日志中的信息格式:(?<字段名称>匹配具体信息的正则表达式)

日志样例:
<78> 2019-08-21T17:10:01.461970+08:00 localhost CROND: (root) CMD (/usr/lib64/sa/sa1 1 1)

正则表达式
\<(?<prl>\d+)\>\s+(?<timestamp>\S+)\s+(?<hostname>\S+)\s+(?<type>\S+)\s+(?<message>.*)

提取出78 时间信息 localhost CROND. 后面的信息合并
默认是以空格为分割符

提取78: \<(?<ptl>\d+)\>. \d:数字。 +:代表前面部分重复一个或者多次
匹配空格 \s+ 匹配多个空格,\s 任何空白字符,空格,制表,换页符等
提取时间:(?<\S+>) \S 与\s相反
提取主机名:(?<hostname>\w+) \w 包括下划线和任务单词数字 \W 与\w相反
提取type:(?<type>\S+)
最后信息一起合并:(?<message>.) . : 合并到行尾

拆分结果:

hostname:"localhost"

message:"(root) CMD (/usr/lib64/sa/sa1 1 1)"

prl:"78"

timestamp:"2019-08-21T17:10:01.461970+08:00"

type:"CROND:"

raw_message:"<78> 2019-08-21T17:10:01.461970+08:00 localhost CROND: (root) CMD (/usr/lib64/sa/sa1 1 1)"

上一篇:Linux定时任务crontab详解


下一篇:Linux添加cron脚本