我有一个 mod_security 日志解析脚本,用于将数据加载到 mysql 数据库中,然后我们的项目管理系统访问该数据库,以向我们的开发人员显示规则集的最新标记。
该脚本运行良好,但我需要弄清楚它是如何调用的。我可以将其添加到 cronjob 中,但我不确定服务器负载是否每 2-5 秒运行一次。
我想知道是否有任何方法可以在写入日志文件时调用脚本?
答案1
如果您正在写入文件,您可以直接写入“|yourimportscript”并让其运行管道输入。当 Apache 重新启动时,它将重新启动该进程。它将花费大部分时间等待收到输入,并且不需要 cron 作业。
您可以将脚本编写为守护进程,并使用 famd 查看文件是否被修改。或者,保存上次读取的 fpos,然后在 cron 触发时查看保存的 fpos 之外是否有任何内容。
如果您没有获得那么多数据,影响会比较小。如果您获得大量数据,您也可以考虑通过 syslog 记录到单独的机器上并在那里进行处理。