1. 程式人生 > >日誌文件管理者:Logrotate

日誌文件管理者:Logrotate

logrotate 日誌 切塊

rotate:輪轉、交替、轉動、試轉動


在服務運行的時候,難免會生成大量日誌,一般來說遇到日誌過多的情況,就會寫一個看門狗,監控磁盤容量的大小,如果磁盤剩余空間小於某個值,就去日誌文件夾裏把一個月或者幾個月之前的廢棄日誌刪除掉以達到釋放磁盤空間的目的。


但是往往有的時候過期的日誌很重要,或者即使是一周的時間內,也會生成容量非常可觀的日誌量,那麽就需要使用logrotate命令,這個命令是linux自帶的。


logrotate這個命令的用法請看:https://linux.cn/article-8227-1-rel.html 和 https://linux.cn/article-4126-1.html 。


這裏我就簡單做一個實驗,假設我服務器裏某個日誌文件夾裏的日誌是這樣的:

技術分享


然後我的配置文件是這麽寫的:

/mnt/hswx/auc/logs/auc.log.10 {
            daily        每天執行一次
        minsize 200M    文件容量大於200M開始處理,如果到了時間但是沒有大於200M,不會處理
        compress    壓縮
        dateext     文件會已日期為後綴
        create 777 root root    新建的那個日誌文件屬性是777
        rotate 2    保留2個
}


然後執行#logrotate -vf /etc/logrotate.conf 的時候,看到的效果是:

技術分享


create了新的auc.log.10,而且屬性變成了777,同時把原有的部分壓縮成gz的格式。


上面那個測試是測試已經過期的日誌,現在我們要壓縮當前的日誌,在壓縮了auc.log並且重命名之後,可以生成新的auc.log,同時這個新的auc.log會被寫入。


現在我們嘗試一下,把原來的配置文件改成這樣:

/mnt/hswx/auc/logs/auc.log {
        weekly
        minsize 200M
        compress
        rotate 2
}


但是執行之後,我們發現變成了這樣:

技術分享


原來的auc.log不見了,而出現的auc.log.1裏面的內容是原來auc.log的內容,可見原有的auc.log已經被頂掉了。這是因為我們上面的配置文件裏面沒有加上dateext,所以默認會以.1、.2為後綴。


問題是我們沒有生成auc.log,那麽這段時間的日誌就會消失

本文出自 “生活就是等待戈多” 博客,請務必保留此出處http://chenx1242.blog.51cto.com/10430133/1942514

日誌文件管理者:Logrotate