11.23 访问日志切割
时间:2022-04-27
本文章向大家介绍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
访问日志切割
- 当日志一直往一个文件中写入,总会有一天把磁盘写满,所以就需要把文件每天做一个切割,然后超过一定时间段的这些日志删除或者拷贝走,这样就能保证磁盘永远写不满
- 打开配置文件
- 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 ,两者时区不同,相差几个小时
- -l参数,目的是以当前系统时间为基准。如果不指定 -l ,那么就会指定 UTC时间 的格式去切割日志
- 定义日志的名称,因为是切割的,所以根据时间日期让它自动变,就需要加一个变量%Y%m%d
- %Y,表示 年
- %m,表示 月
- %d,表示 日
- 按规定时间去生成,时间段为1天,换算成秒,就是86400秒
- 然后查看配置文件语法有无错误,并重新加载配置文件
[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 ~]#
- 这时候还需要去做一些访问,因为还没有任何的日志生成,在这个目录下还没有生成一个新的文件
[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 ~]#
- 用curl命令访问
[root@hf-01 ~]# curl -x127.0.0.1:80 111.com/123.php
123.php[root@hf-01 ~]#
- 这时候会看到一个以日期为后缀的新日志文件
[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 ~]#
- 查看新生成的日志文件内容,会看到就是刚刚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 ~]#
- 在以后的凌晨0点的时候,就会生成一个新的日志
- 另外还需要做一个任务计划,超过一个月或两个月的日志删除,如果不删除,那是否切割日志就没有意义了
日志切割总结
- 做日志切割的目的,是为了防止磁盘写满,另一个目的就是为了更方便的去管理日志
- Silverlight Telerik控件学习:数据录入、数据验证
- AI与自动驾驶
- python多线程学习笔记(超详细)
- Silverlight Telerik控件学习:RadTransitionControl
- Silverlight Telerik控件学习:弹出窗口RadWindow
- Andrew Ng机器学习课程笔记--week6(精度&召回率)
- Andrew Ng机器学习课程笔记--week5(下)
- silverlight: "[HtmlPage_NotEnabled] 调试资料字符串不可用"的解决
- Andrew Ng机器学习课程笔记--week5(上)
- Silverlight Telerik控件学习:带CheckBox复选框的树形TreeView控件
- Andrew Ng机器学习课程笔记--week4(神经网络)
- javascript:FF/Chrome 与 IE 动态加载元素的区别
- 腾讯云发布企业级微服务中间件TSF,助企业构建亿级互联网应用架构
- java学习:字符串比较“==”与“equals”的差异及与c#的区别
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法