11.23 访问日志切割

访问日志切割目录概要

  • 日志一直记录总有一天会把整个磁盘占满,所以有必要让它自动切割,并删除老的日志文件
  • 把虚拟主机配置文件改成如下:
 <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
</VirtualHost>
  • 重新加载配置文件 -t, graceful
  • ls /usr/local/apache2.4/logs

访问日志切割

  • 当日志一直往一个文件中写入,总会有一天把磁盘写满,所以就需要把文件每天做一个切割,然后超过一定时间段的这些日志删除或者拷贝走,这样就能保证磁盘永远写不满
  1. 打开配置文件
  • vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
[root@hf-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

更改CustomLog配置
1.首先指定一个工具rotatelogs
2.在定义一个日志的名称%Y%m%d
3.规定时间去生成,时间段就为1天,换算成秒,就是86400秒

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时间 的格式去切割日志
      • 在中国应该是 CST,在美国是 UTC ,两者时区不同,相差几个小时
  • 定义日志的名称,因为是切割的,所以根据时间日期让它自动变,就需要加一个变量%Y%m%d
    • %Y,表示 年
    • %m,表示 月
    • %d,表示 日
  • 按规定时间去生成,时间段为1天,换算成秒,就是86400秒
  1. 然后查看配置文件语法有无错误,并重新加载配置文件
[root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@hf-01 ~]# 
  1. 这时候还需要去做一些访问,因为还没有任何的日志生成,在这个目录下还没有生成一个新的文件
[root@hf-01 ~]# ls /usr/local/apache2.4/logs/
111.com-access_log  abc.com-access_log  access_log  httpd.pid
111.com-error_log   abc.com-error_log   error_log
[root@hf-01 ~]# 
  1. 用curl命令访问
[root@hf-01 ~]# curl -x127.0.0.1:80 111.com/123.php
123.php[root@hf-01 ~]# 
  1. 这时候会看到一个以日期为后缀的新日志文件
[root@hf-01 ~]# !ls
ls /usr/local/apache2.4/logs/
111.com-access_log           abc.com-access_log  error_log
111.com-error_log            abc.com-error_log   httpd.pid
123.com-access_20171222.log  access_log
[root@hf-01 ~]# 
  1. 查看新生成的日志文件内容,会看到就是刚刚curl命令访问的
[root@hf-01 ~]# cat /usr/local/apache2.4/logs/123.com-access_20171222.log
127.0.0.1 - - [22/Dec/2017:05:32:02 +0800] "GET HTTP://111.com/123.php HTTP/1.1" 200 7 "-" "curl/7.29.0"
[root@hf-01 ~]# 
  1. 在以后的凌晨0点的时候,就会生成一个新的日志
  2. 另外还需要做一个任务计划,超过一个月或两个月的日志删除,如果不删除,那是否切割日志就没有意义了

日志切割总结

  • 做日志切割的目的,是为了防止磁盘写满,另一个目的就是为了更方便的去管理日志

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏木头编程 - moTzxx

ThinkPHP5.1 配置Nginx/Apache下的 URL重写

4132
来自专栏Java架构沉思录

Linux常用Shell脚本知多少

在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运...

1221
来自专栏Timhbw博客

学习提升之HTTP状态码详解

2016-11-1410:23:53 发表评论 315℃热度 1.URL 2.URL中常见的协议 3.TCP/IP协议簇 4.TCP/IP参考模型 ...

3526
来自专栏地方网络工作室的专栏

打造前端 Deepin Linux 工作环境——配置 XAMPP 集成环境2 虚拟主机、数据库

打造前端 Deepin Linux 工作环境——配置 XAMPP 集成环境2 虚拟主机、数据库 再上一篇博文当中,我们安装上了 XAMPP 集成环境。这一篇,我...

2207
来自专栏Jerry的SAP技术分享

记录我开发工作中遇到HTTP跨域和OPTION请求的一个坑

场景是我需要在部署在域名a的Web应用里用JavaScript去消费一个部署在域名b的服务器上的服务。域名b上的服务也是我开发的,因此我将域名a加到了该服务的H...

892
来自专栏菩提树下的杨过

Spring Security笔记:Remember Me(下次自动登录)

前一节学习了如何限制登录尝试次数,今天在这个基础上再增加一点新功能:Remember Me. 很多网站,比如博客园,在登录页面就有这个选项,勾选“下次自动登录”...

4286
来自专栏腾讯移动品质中心TMQ的专栏

Android权限机制,你真的了解吗?

一、Android的权限机制 Android是目前最流行的智能手机软件平台之一,在智能移动终端如火如荼发展的同时,其安全态势也日益严峻。有调查表明,恶意软件的...

1.2K10
来自专栏码洞

你没读过的Jetty使用入门

在近几年的开源Java容器市场上,Tomcat依旧保持在龙头老大的位置,其地位丝毫没有被撼动的迹象。与此同时Tomcat也因为架构臃肿结构复杂而饱受批评。作为T...

1362
来自专栏互扯程序

Linux常用Shell脚本,值得学习及收藏

在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运...

2031
来自专栏程序生活

Laravel-博客实战+踩坑laravel-blog最终的效果踩的坑

最近在学习Laravel,参考的课程是后盾网地Laravel5.2博客项目实战 下面整个项目的开发过程: laravel-blog 基于laravel5....

7445

扫码关注云+社区

领取腾讯云代金券