Centos
壓縮使用 cronolog 旋轉的日誌
我有一堆帶有 Apache 的伺服器(Centos 5.x),它們的日誌使用 cronolog 進行輪換。在一定時間後自動壓縮和刪除這些日誌的最佳策略是什麼?CustomLog “|/usr/sbin/cronolog /var/log/httpd/my.examplehost.com/access_log-%Y%m%d” 常見
我正在考慮創建一個 cron 腳本,它只是說
gzip /var/logs/httpd/my.examplehost.com/*
但這不是也嘗試壓縮apache目前正在寫入的文件嗎?在 cronolog 首頁上只提到你應該寫你的 cron 工作或類似的工作,但沒有關於如何做到這一點的說明。
Logrotate 確實是這項工作的工具,但如果你不能使用它,那麼你可以使用
find
和-ctime
patameterfind /var/logs/httpd/my.example.host.com/ -ctime +0 -not -name '*.gz' -exec gzip {} \;
應該做你想做的事情,因為它會找到在 24 小時前更改但尚未壓縮的文件並壓縮它們。
為確保您正在處理的文件仍未打開,您可以執行以下操作
#!/bin/bash for file in $(find /var/logs/httpd/my.example.host.com/ -ctime +0 -not -name '*.gz') do lsof | grep $file if [$? -eq 1 ] then gzip $file fi done