3213213 发表于 2016-4-29 16:55:19

配置apache的访问日志,并以一天时间来分割

# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
修改为以日期为命名的错误日志和访问日志ErrorLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/tpp.com-error_%Y%m%d.log 86400"
    SetEnvIf Request_URI ".*.gif$" image-request
    SetEnvIf Request_URI ".*.jpg$" image-request
    SetEnvIf Request_URI ".*.png$" image-request
    SetEnvIf Request_URI ".*.bmp$" image-request
    SetEnvIf Request_URI ".*.swf$" image-request
    SetEnvIf Request_URI ".*.js$" image-request
    SetEnvIf Request_URI ".*.css$" image-request
CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/tpp.com-access_%Y%m%d.log 86400" combined env=!image-request如下图:其中命令都是以绝对路径,rotatelogs是分割工具,%Y%m%d时间为分割单位,86400秒为一天。SetEnv为自定义的,下面访问日志可以调用env,即不记录以gif、jpg等结尾的文件。
接着我们从新检测和加载Apache
1
2
3
#/usr/local/apache2/bin/apachectl -t
Syntax OK
#/usr/local/apache2/bin/apachectl graceful




然后我们刷新下网页就会看到有日志生成,如下图:

1
2
3
4
5
# cd /usr/local/apache2/logs/
# ls
access_logdummy-host.example.com-access_logdummy-host.example.com-error_logerror_loghttpd.pid
# ls
access_logdummy-host.example.com-access_logdummy-host.example.com-error_logerror_loghttpd.pidtpp.com-access_20160429.log




注意:日积月累访问日志会越来越多,下面我们写个脚本进行删除一个月前的访问日志:

# cat /usr/local/apache2/logs/logcron.sh
#! /bin/bash
# delete access logs
keepdays=31
log_files="/usr/local/apache2/logs/tpp.com-access"
rm -f ${log_files}_$(date +"%Y%m%d" --date="-${keepdays} day").log
加入到计划任务中,每天零点执行:

# crontab -e
00 00 * * * /bin/bash/ /usr/local/apache2/logs/logcron.sh


页: [1]
查看完整版本: 配置apache的访问日志,并以一天时间来分割