我們在使用linux centos+apache服務器時,經常碰到一些訪問日志過大,分析時存在困難或者把硬盤占滿。所以需要定制apache日志產生的限制,以及自動清除。
一、按天分割日志文件或者按大小分割日志文件
1、按天分割apache日志文件
CustomLog "|rotatelogs /var/logs/logfilename.log 86400" common
完整的apache虛擬主機配置文件為(以下配置還需各位視自己情況配置,本文提供的僅作為參考):
ServerName www.domain.com
CustomLog "|rotatelogs /var/log/http/logfilename.log 86400" common
DocumentRoot "/var/www/WebRoot/www_domain_com"
Options FollowSymLinks IncludesNOEXEC
DirectoryIndex index.html
AllowOverride None
Order Deny,Allow
Allow from all
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch MSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
2、按容量分割apache日志文件
使用的語法是:CustomLog logfile [ rotationtime [ offset ]] | [ filesizeM ]
示例:
CustomLog "|rotatelogs /var/log/http/logfilename_%d-%m-%y.log 10M" common
二、自動清除7天前的日志文件
以下是shell命令,保存為dellog.sh存放在/root/目錄下
find /var/log/httpd/lelelady/ -mtime +7 -name "*.log" -exec rm -rf {} ;
設置crontab每天凌晨3點自動執行shell腳本。
00 03 * * * /root/dellog.sh