我当前的 rsyslog 模板配置如下所示:
/etc/rsyslog.d/00-samba-audit.conf
template(name="sambalog" type="string"
string="%$year%-%$month%-%$day% %$hour%:%$minute% %HOSTNAME% %app-name% %msg%\n")
if $programname == 'smbd_audit' then /var/log/samba/log.audit;sambalog
可悲的是,无缘无故没有秒数的变量。
问题:如何将日期/时间格式设置为下一个?
2018-08-09 20:12:58
变量
$year
,$day
, ...$minute
指的是当前时间。您宁愿想要生成或报告事件时的时间戳(请参阅此处了解差异)。属性timegenerated
和timereported
(==timestamp
) 允许进一步处理(即您可以从这些属性中选择某些字段)。您不能从当前时间中选择秒数,而只能从上面提到的两个时间戳中选择。所以:哇,这是一条很长的行,除了将模板定义为字符串之外,您还可以将其定义为列表。行为是相同的,只是定义不同,并且允许在中间使用 linebrakes 和注释。也许这会提高可读性:
当我将上述内容放入
/etc/rsyslog.d/so.conf
然后systemctl restart syslog.service
最终发出时然后文件
/var/log/so-test.log
包含:根据rsyslog 文档:
和属性替换文档说:
因此,您应该能够将秒数放入
%second%
或%date-second%
放入模板中。我做了这个
结果看起来像
2019-09-05 12:22:46
。