歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

CentOS Linux使用logrotate分割管理日志

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程序每天執行一次。

Copyright © Linux教程網 All Rights Reserved