Bash grep php error_log 通过过滤器归档的致命错误


Bash grep php error_log Fatal errors to file by filter


我有运行多个网络应用程序(PHP)的网络服务器。配置的设置方式是,php error_log在午夜被删除(因此文件仅持续 24 小时)。

问题是,我想将所有致命错误记录到另一个文件或数据库中,但仅适用于特定的 Web 应用程序。(大约有 20 个正在运行,其中 4 个是我的)。

我正在考虑创建一个 bash 脚本,在"Fatal"和我的应用程序的 url 上 greping error_log文件,将输出提取到文件,并在单独的缓存文件中记住当前error_log的最后一行号。

然后,我将脚本放入 cron 并每隔几分钟执行一次(从上次运行的最后一行开始)。

整个想法有点混乱,我认为它可以有效地编写,有什么想法吗?

如果您无法开箱即用地配置它,那么编写 cron 作业似乎没问题。我不太了解PHP。例如,在java中,您可以根据条件将相同的日志消息转到多个日志文件。

但是我会让你的cron工作同时收集致命错误和删除"最后一天"的日志文件。这样,您只需在午夜运行一次此脚本就足够了,并且省去了知道上次结束位置的复杂性(以及错过午夜前发生的一些错误的机会)。如果集合正常,请删除旧文件,否则将其保留为诊断并重试。它为您节省了对脚本的大量 (24*60) 调用。