CentOS Linux使用logrotate分割管理日誌

logrotate程序是一個日誌文件管理工具。用於分割日誌文件,刪除舊的日誌文件,並建立新的日誌文件,起到「轉儲」做用。能夠節省磁盤空間。nginx

logrotate命令格式:
logrotate [OPTION...] <configfile>
-d, --debug :debug模式,測試配置文件是否有錯誤。
-f, --force :強制轉儲文件。
-m, --mail=command :發送日誌到指定郵箱。
-s, --state=statefile :使用指定的狀態文件。
-v, --verbose :顯示轉儲過程。

logrotate的配置文件是/etc/logrotate.conf。查看缺省配置狀況:
vim

cat /etc/logrotate.confide

顯示以下:工具

# see "man logrotate" for details
# rotate log files weekly
weekly
post

# keep 4 weeks worth of backlogs
rotate 4
測試

# create new (empty) log files after rotating old ones
create
this

# uncomment this if you want your log files compressed
#compress
spa

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
debug

# no packages own wtmp -- we'll rotate them here
/var/log/wtmp {
monthly
minsize 1M
create 0664 root utmp
rotate 1
}
日誌

# system-specific logs may be also be configured here.

簡單說明:
weekly :全部的日誌文件每週轉儲一次。
rotate 4 :轉儲的文件分爲4份。
create :logrotate自動建立新的日誌文件。
compress :壓縮日誌文件。默認是註釋掉的。
include /etc/logrotate.d :讀入/etc/logrotate.d目錄下的日誌轉儲參數,當系統中安裝了RPM軟件包時,RPM包的日誌轉儲參數通常會自動創建在/etc/logrotate.d目錄下。
/var/log/wtmp段 :對/var/log/wtmp日誌轉儲的配置。

使用logrotate管理lnmp一鍵安裝包中nginx的鏈接日誌,lnmp日誌文件在/home/wwwlogs目錄下。

創建配置文件:

vim /etc/logrotate.d/nginx

輸入以下:

/home/wwwlogs/access.log /home/wwwlogs/nginx_error.log {
notifempty
daily
rotate 5
sharedscripts
postrotate
/bin/kill -HUP `/bin/cat /usr/local/nginx/logs/nginx.pid`
endscript
}

說明:
notifempty :若是是空文件的話,不轉儲。
daily :日誌文件天天轉儲一次。
rotate 5 ;轉儲文件分爲5份。
postrotate/endscript :日誌轉儲後執行的腳本。這裏用來讓nginx從新生成日誌文件。nginx.pid裏存的是nginx的主進程號。

執行logrotate:

/usr/sbin/logrotate -vf /etc/logrotate.conf

若是沒有報錯,生成了轉儲文件,nginx正常訪問,就OK了。

logrotate如何自動執行:在/etc/cron.daily目錄下有logrotate執行的腳本。經過crontab程序天天執行一次。

相關文章
相關標籤/搜索