可以在不更改 conf 文件的情况下更改 RSYSLOG_FileFormat 时间戳输出吗?
Possible to change RSYSLOG_FileFormat timestamp output without changing conf file?
我目前有一个在 rsyslog.conf 中启用了 RSYSLOG_FileFormat 的系统。我不允许更改系统格式,因此我试图找到一种解决方法,使我能够将日志文件(在本例中为 /var/log/messages )的输出查看为下面提到的所需时间戳格式.原因是我更容易快速浏览不需要那么高精度的日志文件。非常感谢您的建议!
示例当前输出时间戳:
2020-12-17T19:05:34.118891+00:00
期望的输出:
Dec 12 2020 19:05:34
使用 awk
和两个数组:
awk 'BEGIN{m[10]="Oct"; m[11]="Nov"; m[12]="Dec"}
{
# split first field from current row ("")
# (here: "2020-12-17T19:05:34.118891+00:00") with
# field separator "T", ".", and "-" in five parts
# to array "array"
split(, array, "[T.-]")
# rebuild first field from current row with elements of array "array"
=sprintf("%s %s %s %s %s", m[array[2]], array[3], array[1], array[4], )
# output complete current row
print
}' /var/log/messages
作为一行:
awk 'BEGIN{m[10]="Oct"; m[11]="Nov"; m[12]="Dec"} {split(,array,"[T.-]"); =sprintf("%s %s %s %s %s", m[array[2]],array[3],array[1],array[4],); print}' /var/log/messages
请自己完成数组m
。
我目前有一个在 rsyslog.conf 中启用了 RSYSLOG_FileFormat 的系统。我不允许更改系统格式,因此我试图找到一种解决方法,使我能够将日志文件(在本例中为 /var/log/messages )的输出查看为下面提到的所需时间戳格式.原因是我更容易快速浏览不需要那么高精度的日志文件。非常感谢您的建议!
示例当前输出时间戳:
2020-12-17T19:05:34.118891+00:00
期望的输出:
Dec 12 2020 19:05:34
使用 awk
和两个数组:
awk 'BEGIN{m[10]="Oct"; m[11]="Nov"; m[12]="Dec"}
{
# split first field from current row ("")
# (here: "2020-12-17T19:05:34.118891+00:00") with
# field separator "T", ".", and "-" in five parts
# to array "array"
split(, array, "[T.-]")
# rebuild first field from current row with elements of array "array"
=sprintf("%s %s %s %s %s", m[array[2]], array[3], array[1], array[4], )
# output complete current row
print
}' /var/log/messages
作为一行:
awk 'BEGIN{m[10]="Oct"; m[11]="Nov"; m[12]="Dec"} {split(,array,"[T.-]"); =sprintf("%s %s %s %s %s", m[array[2]],array[3],array[1],array[4],); print}' /var/log/messages
请自己完成数组m
。