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
weeklypost# keep 4 weeks worth of backlogs
rotate 4測試# create new (empty) log files after rotating old ones
createthis# uncomment this if you want your log files compressed
#compressspa# RPM packages drop log rotation information into this directory
include /etc/logrotate.ddebug# 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程序天天執行一次。