logrotate程序是一個日志文件管理工具。用於分割日志文件,刪除舊的日志文件,並創建新的日志文件,起到“轉儲”作用。可以節省磁盤空間。
logrotate命令格式:
logrotate [OPTION...] <configfile>
-d, --debug :debug模式,測試配置文件是否有錯誤。
-f, --force :強制轉儲文件。
-m, --mail=command :發送日志到指定郵箱。
-s, --state=statefile :使用指定的狀態文件。
-v, --verbose :顯示轉儲過程。
logrotate的配置文件是/etc/logrotate.conf。查看缺省配置情況:
cat /etc/logrotate.conf
顯示如下:
# see "man logrotate" for details
# rotate log files weekly
weekly# keep 4 weeks worth of backlogs
rotate 4# create new (empty) log files after rotating old ones
create# uncomment this if you want your log files compressed
#compress# RPM packages drop log rotation information into this directory
include /etc/logrotate.d# 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程序每天執行一次。