Logrotate

驗證日誌記錄是否已啟動並已啟用

  • May 11, 2017
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”?

偏移量是文件中的位置(如果附加了文件,則為文件的大小)。由於文件是空的,它是 0。如果文件是由 Apache 打開的,那部分配置正確,所以不用擔心。logrotate 最常見的問題是重命名文件而不告訴 Apache。

在 lsof 中,您會看到這是一個帶有錯誤(存檔)名稱的打開文件或一個標記為(已刪除)的文件。兩者都不是您的系統上的情況。

您可以檢查是否要更改日誌級別以將更多或更少的資訊寫入文件,但這與 logrotate 無關。

除此之外,您可以刪除觸發日誌輸出的 PHP 腳本。(不確定您必須為 phpapi_access 日誌呼叫什麼 API。

由於這個問題被標記為 lsof,因此手冊頁的每一列都有一個很大的章節:

尺寸、尺寸/關閉或偏移

是文件的大小或以字節為單位的文件偏移量。僅當值可用時,該值才會顯示在此列中。Lsof 顯示適合文件類型和 lsof 版本的任何值 - 大小或偏移量。

引用自:https://serverfault.com/questions/849431