linux - 每次滚动或旋转我的日志文件时,如何使用 'newsyslog' 触发脚本?

标签 linux bash logging freebsd syslog

我如何使用 'newsyslog' 在我的日志文件每次翻转或旋转时触发脚本?该脚本是一个解析器,它从日志中收集重要信息并将其存档。

使用 newsyslog.conf 中的 path_to_pid_cmd_file 是执行此类操作的唯一方法吗?我使用这种方法的问题是,这意味着我的解析器脚本需要始终在后台运行/休眠,我会向它发出信号。

我想知道是否有更简洁的方法来做到这一点?就在日志文件被轮换之前,应该运行解析器脚本并归档数据,之后解析器就会死掉。每次轮换日志文件时都会发生这种情况。

我确实听说过 'logrotate' 通过预旋转处理程序支持这样的功能,但是有没有一种方法可以通过 'newsyslog' 来实现这一点'系统日志'

最佳答案

不幸的是,除了您建议的运行专用进程来接收信号之外,没有其他方法可以使用 newsyslog 来执行此操作。

logrotate 是我遇到过的功能最全的包,它可以做超出 newsyslog 内置功能的事情,但如果你想要更简单、更 DIY 的东西,我会看看 sysutils/wait_on使用 kqueue 的实用程序看到变化。

关于linux - 每次滚动或旋转我的日志文件时,如何使用 'newsyslog' 触发脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20375652/

相关文章:

c - 输入带有不可打印字符的字符串

asp.net - .NET 日志记录 Web 服务

amazon-web-services - 存储桶日志文件的 S3 数据分区

linux 两个文件夹之间的公共(public)文件

linux - 在编译时启用 AVX512 支持会显着降低性能

linux - 从 Bash 脚本中的文件参数打印权限

java - 如何将 bash 脚本的输出打印到 Java 标准输出

git - 如何在 commit-msg 钩子(Hook)中捕获 git commit 消息?

linux - SIPP : open file limit > FD_SETSIZE

.net - 使用 xml 文件配置 log4net