Linux
logrotate:保留 N 個最新文件,但不重命名
我有一個服務,它會在啟動時自動創建一個日誌文件,文件名中帶有時間戳。因此,我不需要 logrotate 來重命名/複製/創建文件,但我想要的是 logrotate 只保留這些文件中的三個最新文件(並且可以選擇壓縮它們)。我能以某種方式做到這一點嗎?
我不確定您是否可以使用
logrotate
. 您可以將以下內容作為日常 cron 作業執行:rm $(ls -t | sed -e '1,3d')
我不認為它可以完全按照你的意願去做。如果您仍想首先使用 logrotate,您需要指定 logrotate 輪換日誌的頻率(每天/每週/每月/每年)。你可以這樣設置:
# rotate log files daily daily # Log files are rotated count times before being removed or mailed to the address # specified in a mail directive. If count is 0, old versions are removed rather than # rotated. rotate 3 # Old versions of log files are compressed with gzip(1) by default. compress
但正如@quanta 所寫,它可能無法用 logrotate 完成。您將使用我上面寫的一些類似的設置,或者您可能需要使用其他工具。