Linux系統中Logrotate工具用法彙總

Linux系統中Logrotate工具用法彙總nginx

 

兄弟連IT教育官方與你們分享Linux系統中Logrotate工具用法彙總,簡單的過程當中其實暗藏玄機,仍是要細心學習,喜歡還請記得收藏哦!bash

Linux系統操做中,Logrotate是一款日誌管理工具,可對Linux日誌進行處理,在使用前,須要對Logrotate工具進行配置,下面就給你們介紹下Linux中Logrotate工具的用法,一塊兒來了解下吧。工具

1運行原理post

 

Logrotate是基於CRON來運行的,其腳本是/etc/cron.daily/logrotate學習

 

#!/bin/shurl

 

/usr/sbin/logrotate /etc/logrotate.conf.net

 

EXITVALUE=$?日誌

 

if [ $EXITVALUE != 0 ]; thenorm

 

/usr/bin/logger -t logrotate ALERT exited abnormally with [$EXITVALUE]crontab

 

fi

 

exit 0

 

/etc/cron.daily目錄全部腳本運行頻率是由CRON經過/etc/crontab控制,

 

有兩種運行方式: 1 直接執行單個命令; 2 目錄規劃,下面僅列舉目錄規劃配置

 

SHELL=/bin/bash

 

PATH=/sbin:/bin:/usr/sbin:/usr/bin

 

MAILTO=root

 

HOME=/

 

# run-parts

 

*/1 * * * * root run-parts /etc/cron.min

 

01 * * * * root run-parts /etc/cron.hourly

 

59 23 * * * root run-parts /etc/cron.daily

 

22 4 * * 0 root run-parts /etc/cron.weekly

 

42 4 1 * * root run-parts /etc/cron.monthly

 

2配置文件

 

/etc/logrotate.conf 全局默認文件

 

/etc/logrotate.d/ 目錄,下屬文件經過include歸入前者

 

經常使用選項

 

weekly 《==默認一週執行一次 rotate 工做

 

rotate 4 《==保留多少個日誌文件。默認保留四個。

 

create 《==建立新的文件。由於日誌被更名,所以要建立一個新的來繼續存儲以前的日誌

 

dateext 《==文件後綴是日期格式,也就是切割後文件是:xxx.log-20131216,若是註釋掉,切割出來是按數字遞增,即前面說的 xxx.log-1

 

compress 《==是否壓縮日誌。

 

include /etc/logrotate.d # 將 /etc/logrotate.d/ 目錄中的全部文件都加載進來

 

/var/log/wtmp { 《==僅針對 /var/log/wtmp 所設定的參數

 

monthly 《==每個月一次切割,取代默認的一週

 

minsize 1M 《==文件大小超過 1M 後纔會切割

 

create 0664 root utmp 《==指定新建的日誌文件權限以及所屬用戶和組

 

rotate 1 《==只保留一個日誌。

 

}

 

經過include加載的文件示例以下

 

[root@www ~]# vi /etc/logrotate.d/syslog

 

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron

 

{

 

sharedscripts

 

prerotate

 

/usr/bin/chattr -a /var/log/messages

 

endscript

 

sharedscripts

 

postrotate

 

/bin/kill -HUP `cat /var/run/syslogd.pid 2》 /dev/null` 2》 /dev/null || true

 

/bin/kill -HUP `cat /var/run/rsyslogd.pid 2》 /dev/null` 2》 /dev/null || true

 

/usr/bin/chattr +a /var/log/messages

 

endscript

 

}

 

日誌文件: 被處理的日誌絕對路徑。使用空格符分隔多個文件名;

 

執行腳本:

 

可調用外部指令來進行額外的命令,這個設定需與 sharedscripts 。。。。 endscript 設定合用才行。命令介紹:

 

prerotate:在啓動 logrotate 以前進行的指令,例如修改文件的屬性等動做;

 

postrotate:在作完 logrotate 以後啓動的指令,例如從新啓動 (kill -HUP) 某個服務;

 

那麼 /etc/logrotate.d/syslog 內設定的六個文件的切割功能就變成了:

 

1.該設定只對 /var/log/ 內的 messages, secure, maillog, spooler, boot.log, cron 有效;

 

2.日誌切割每週一次、保留四個、且切割下來的日誌文件不進行壓縮(未更改預設值);

 

3.切割完畢後 (postrotate) 取得 syslog 的 PID 後,以 kill -HUP 從新啓動 syslogd

 

切割案例:Nginx

 

============================

 

在 /etc/logrotate.d 新建 nginx

 

/usr/local/nginx/logs/*.log {

 

daily

 

rotate 5

 

dateext

 

compress

 

sharedscripts

 

postrotate

 

if [ -f /usr/local/nginx/logs/nginx.pid ]; then

 

kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

 

fi

 

endscript

 

}

 

上面就是Linux中Logrotate工具的用法介紹了,本文介紹了Logrotate工具的運行原理和Logrotate文件的配置,若是你要管理Linux系統日誌,可選擇使用Logrotate日誌管理工具。

相關文章
相關標籤/搜索