天天看点

访问日志切割

磁盘100G,一天一个G日志一直记录总有一天会把整个磁盘占满,虽然不能直接cat或者vim,对于访问日志是不停的在后面追加,所以对它来讲不需要打开这个文件,所以也不会影响到什么效率,但是磁盘占满是很危险的事情,所以有必要让它自动切割,并删除老的日志文件。昨天的日志归档一个文件名字,今天凌晨又一个新的日志开始写,超过一定时间段的比如一个星期或者一个月的该删除的删除或者移走。这样可以保证磁盘永远写不满

把虚拟主机配置文件改成如下: 

<VirtualHost :80>

DocumentRoot "/data/wwwroot/www.123.com"

ServerName www.123.com

ServerAlias 123.com

SetEnvIf Request_URI "..gif$" img

SetEnvIf Request_URI "..jpg$" img

SetEnvIf Request_URI "..png$" img

SetEnvIf Request_URI "..bmp$" img

SetEnvIf Request_URI "..swf$" img

SetEnvIf Request_URI "..js$" img

SetEnvIf Request_URI "..css$" img 

CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access%Y%m%d.log 86400" combined env=!img //rotatelogs是Apache自带的工具 -l是以系统当前时间为基准。如果不指定-l就会按照utc时间切割日志。%Y%m%d每天切割成不同的名字。86400 规定什么时间去切割。时间段是一天换算成秒是86400 

</VirtualHost>

重新加载配置文件 -t, graceful

ls /usr/local/apache2.4/logs //下面还没有生成新的日志文件所以需要去访问

curl -x192.168.211.149:80 111.com/qq.jpg111 -I //不能在访问jpg后缀的图片了

ls logs/ //生成日期的日志

111.com-access_20171206.log access_log

111.com-access_log error_log

111.com-error_log httpd.pid

后面还有做一个任务计划把超过一个月的日志删除

本文转自 虾米的春天 51CTO博客,原文链接:http://blog.51cto.com/lsxme/2052786,如需转载请自行联系原作者