COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 1744 apache 16w REG 202,1 0 167906281 phpapi_access_log
httpd 2334 apache 16w REG 202,1 0 167906281 phpapi_access_log
以上是我的 phpapi_access_log 文件的 lsof 输出。日志记录频率非常低,因此我无法确定日志是否正在写入文件。我为文件启用了 logrotate,但到现在文件还是空的。我如何验证日志是否会在需要时写入文件?SIZE/OFF 是什么?为什么它是“0”?
答案1
偏移量是文件中的位置(如果是附加的,则是文件的大小)。由于文件为空,因此偏移量为 0。如果文件由 Apache 打开,则该部分配置正确,因此不必担心。logrotate 最常见的问题是重命名文件而不告知 Apache。
在 lsof 中,您会看到这是一个打开的文件,文件名称错误(已存档),或者文件标记为(已删除)。但您的系统上不会出现这两种情况。
您可以检查是否要更改日志级别以向文件中写入更多或更少的信息,但这与 logrotate 无关。
除此之外,您还可以删除触发日志输出的 PHP 脚本。(不确定您必须调用什么 API 来记录 phpapi_access 日志。)
由于这个问题被标记为 lsof,手册页每个专栏都有一个大章节:
SIZE、SIZE/OFF 或 OFFSET
是文件的大小或文件偏移量(以字节为单位)。只有当值可用时,才会在此列中显示该值。Lsof 显示适合文件类型和 lsof 版本的任何值(大小或偏移量)。