我刚刚设置了一个 syslog 转发器,但如何转发较旧的历史日志(如 access_log)?是否可以重播日志文件以便它们发送历史条目?
答案1
logger 命令有一个‘-f’选项,允许您指定文件名。‘-n’允许您指定将其发送到的远程服务器。
答案2
您可以通过 将任何文本文件传输到 syslog logger
。这将遵循您在 中指定的任何传输方法syslog.conf
,因此请确保在执行此操作之前,您的 syslog.conf 文件列出了 syslog 服务器。
cat access_log | logger -t access_log_old
这将获取 access_log,逐行读取,并将整行发送到带有“access_log_old”标签的系统日志服务器。一些注意事项:
每行都会在 access_log 的开头包含日期字段,这可能不是您想要的。您可以使用
sed
或awk
从每行中删除日期字段。类似这样的操作会起作用:cat access_log | sed 's/MATCH//g' | logger -t access_log
请注意,系统日志中的事件时间将是收到事件的时间,而不是日志中的事件的时间。