Logrotate
驗證日誌記錄是否已啟動並已啟用
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 版本的任何值 - 大小或偏移量。