導讀 | 通常來講,日誌是任何故障排除過程當中很是重要的一部分,但這些日誌會隨着時間增加。在這種狀況下,咱們須要手動執行日誌清理以回收空間,這是一件繁瑣的管理任務。爲了解決這個問題,咱們能夠在 Linux 中配置 logrotate 程序,它能夠自動執行日誌文件的輪換、壓縮、刪除和用郵件發出。咱們能夠配置 logrotate 程序,以便每一個日誌文件能夠在天天、每週、每個月或當它變得太大時處理。 |
logrotate 是如何工做的html
默認狀況下,logrotate 命令做爲放在 /etc/cron.daily 中的 cron 任務,天天運行一次,它會幫助你設置一個策略,其中超過某個時間或大小的日誌文件被輪換。
命令:linux
/usr/sbin/logrotate
配置文件: /etc/logrotate.conf,這是 logrotate 的主配置文件。logrotate 還在 /etc/logrotate.d/ 中存儲了特定服務的配置。確保下面的那行包含在 /etc/logrotate.conf 中,以讀取特定服務日誌配置。git
include /etc/logrotate.d`
logrotate 歷史: /var/lib/logrotate.statusgithub
重要的 logrotate 選項:post
compress --> 壓縮日誌文件的全部非當前版本 daily,weekly,monthly --> 按指定計劃輪換日誌文件 delaycompress --> 壓縮全部版本,除了當前和下一個最近的 endscript --> 標記 prerotate 或 postrotate 腳本的結束 errors "emailid" --> 給指定郵箱發送錯誤通知 missingok --> 若是日誌文件丟失,不要顯示錯誤 notifempty --> 若是日誌文件爲空,則不輪換日誌文件 olddir "dir" --> 指定日誌文件的舊版本放在 「dir」 中 postrotate --> 引入一個在日誌被輪換後執行的腳本 prerotate --> 引入一個在日誌被輪換前執行的腳本 rotate 'n' --> 在輪換方案中包含日誌的 n 個版本 sharedscripts --> 對於整個日誌組只運行一次腳本 size='logsize' --> 在日誌大小大於 logsize(例如 100K,4M)時輪換
配置命令行
讓咱們爲咱們本身的示例日誌文件 /tmp/sample_output.log 配置 logrotate。日誌
第一步:在 /etc/logrotate.conf 中添加如下行。htm
/tmp/sample_output.log { size 1k create 700 root root rotate 4 compress }
在上面的配置文件中:教程
第二步:一般,你須要等待一天才能等到 logrotate 由 /etc/cron.daily 執行。除此以外,你能夠用下面的命令在命令行中運行:ip
/usr/sbin/logrotate /etc/logrotate.conf
在執行 logrotate 命令以前的輸出:
[root@rhel1 tmp]# ls -l /tmp/ total 28 -rw-------. 1 root root 20000 Jan 1 05:23 sample_output.log
在執行 logrotate 以後的輸出:
[root@rhel1 tmp]# ls -l /tmp total 12 -rwx------. 1 root root 0 Jan 1 05:24 sample_output.log -rw-------. 1 root root 599 Jan 1 05:24 sample_output.log-20170101.gz [root@rhel1 tmp]#
這樣就能確認 logrotate 成功實現了。
via: http://www.linuxroutes.com/configure-logrotate/
做者:Manmohan Mirkar 譯者:geekpi 校對:wxy
原文來自:https://linux.cn/article-8227-1.html
本文地址:http://www.linuxprobe.com/configure-logrotate-tutorial.html