apache日志设置方法:按时间、按大小记录

14九

一、apache日志按日期记录

pache的配置文件中找到
ErrorLog logs/error_log
CustomLog logs/access_log common

Linux系统配置方法:

将其改为
ErrorLog “| /usr/local/apache/bin/rotatelogs /home/logs/www/%Y_%m_%d_error_log 86400 480″
CustomLog “| /usr/local/apache/bin/rotatelogs /home/logs/www/%Y_%m_%d_access_log 86400 480″ common

Windows系统下配置方法:

#ErrorLog “|bin/rotatelogs.exe logs/vicp_net_error-%y%m%d.log 86400 480″
#CustomLog “|bin/rotatelogs.exe logs/vicp_net_access-%y%m%d.log 86400 480″ common

第一次不知道设置480这个参数,导致日志记录时间和服务器时间相差8小时,原来是rotatelogs有一个offset参数,表示相对于UTC 的时差分钟数,中国是第八时区,相差480分钟。86400是表示1天。
注:另外有网友说:rotatelogs 默认使用 GMT 时间,加上-l 参数就使用本地时间。本人没试过,大家可试一下!

附rotatelogs说明

rotatelogs logfile [ rotationtime [ offset ]] | [ filesizeM ]

选项
logfile
它加上基准名就是日志文件名。如果logfile中包含’%’,则它会被视为用于的strftime(3)的格式字串;否则,它会被自动加上以秒为单位的.nnnnnnnnnn后缀。这两种格式都表示新的日志开始使用的时间。
rotationtime
日志文件回卷的以秒为单位的间隔时间
offset
相对于UTC的时差的分钟数。如果省略,则假定为0,并使用UTC时间。比如,要指定UTC时差为-5小时的地区的当地时间,则此参数应为-300。
filesizeM
指定回卷时以兆字节为单位的后缀字母M的文件大小,而不是指定回卷时间或时差。

二、设置apache日志记录格式

定制日志文件的格式涉及到两个指令,即LogFormat指令和CustomLog指令,默认httpd.conf文件提供了关于这两个指令的几个示例。

LogFormat指令定义格式并为格式指定一个名字,以后我们就可以直接引用这个名字。CustomLog指令设置日志文件,并指明日志文件所用的格式(通常通过格式的名字)。

LogFormat指令的功能是定义日志格式并为它指定一个名字。例如,在默认的httpd.conf文件中,我们可以找到下面这行代码:

LogFormat “%h %l %u %t \”%r\” %>s %b” common
网管联盟www.bitsCN.com
该指令创建了一种名为“common”的日志格式,日志的格式在双引号包围的内容中指定。格式字符串中的每一个变量代表着一项特定的信息,这些信息按照格式串规定的次序写入到日志文件。

Apache文档已经给出了所有可用于格式串的变量及其含义,下面是其译文:
%…a: 远程IP地址
%…A: 本地IP地址
%…B: 已发送的字节数,不包含HTTP头
%…b: CLF格式的已发送字节数量,不包含HTTP头。例如当没有发送数据时,写入‘-’而不是0。
%…{FOOBAR}e: 环境变量FOOBAR的内容
%…f: 文件名字
%…h: 远程主机
%…H 请求的协议
%…{Foobar}i: Foobar的内容,发送给服务器的请求的标头行。
%…l: 远程登录名字(来自identd,如提供的话)
%…m 请求的方法
%…{Foobar}n: 来自另外一个模块的注解“Foobar”的内容
%…{Foobar}o: Foobar的内容,应答的标头行
%…p: 服务器响应请求时使用的端口
%…P: 响应请求的子进程ID。
%…q 查询字符串(如果存在查询字符串,则包含“?”后面的部分;否则,它是一个空字符串。)

%…r: 请求的第一行
%…s: 状态。对于进行内部重定向的请求,这是指*原来*请求 的状态。如果用%…>s,则是指后来的请求。
%…t: 以公共日志时间格式表示的时间(或称为标准英文格式)
%…{format}t: 以指定格式format表示的时间
%…T: 为响应请求而耗费的时间,以秒计
%…u: 远程用户(来自auth;如果返回状态(%s)是401则可能是伪造的)
%…U: 用户所请求的URL路径
%…v: 响应请求的服务器的ServerName
%…V: 依照UseCanonicalName设置得到的服务器名字在所有上面列出的变量中,“…”表示一个可选的条件。如果没有指定条件,则变量的值将以“-”取代。分析前面来自默认httpd.conf文件的 LogFormat指令示例,可以看出它创建了一种名为“common”的日志格式,其中包括:远程主机,远程登录名字,远程用户,请求时间,请求的第一 行代码,请求状态,以及发送的字节数。

有时候我们只想在日志中记录某些特定的、已定义的信息,这时就要用到“…”。如果在“%”和变量之间放入了一个或者多个HTTP状态代码,则只有当请 求返回的状态代码属于指定的状态代码之一时,变量所代表的内容才会被记录。例如,如果我们想要记录的是网站的所有无效链接,那么可以使用:
LogFormat %404{Referer}i BrokenLinks

反之,如果我们想要记录那些状态代码不等于指定值的请求,只需加入一个“!”符号即可:

LogFormat %!200U SomethingWrong

三、专门记录某个记录

SetEnvIfNoCase User-Agent Baiduspider baidu_robot
LogFormat “%h %t \”%r\” %>s %b” robot
CustomLog “|/usr/local/apache2.2.0/bin/rotatelogs /usr/local/apache2.2.0/logs/baidu_%Y%m%d.txt 86400 480″ robot env=baidu_robot
windows下
CustomLog “|bin/rotatelogs.exe  logs/baidu_%Y%m%d.txt 86400 480″ robot env=baidu_robot
这样在logs目录下,就会每天产生baidu_年月日.txt的日志了,每条的记录和下面的类似:
61.135.168.14 [22/Oct/2008:22:21:26 +0800] “GET / HTTP/1.1″ 200 8427

apache日志备份:

  • 按照Linux系统配置方法配置好 服务器A之后,就可以去备份服务器B写备份脚本了,这里假设服务器A的IP为:192.168.0.3,脚本如下:

    [Copy to clipboard] View Code BASH
    # apache log backup#!/bin/bash# 获取昨天的日期logfilename
    =`
    date-dyesterday +%
    Y%
    m%
    d`# 设置日志备份文件路径backupfilepath
    =/
    var/
    www/
    logs/# 备份错误日志文件echo"get example error log:"cd${backupfilepath}# 获到服务器A昨天的日志文件scproot@
    192.168.0.3:/
    var/
    log/
    httpd/
    example_error_log/
    ${logfilename}./
    example/
    error/cd${backupfilepath}
    example/
    error/# 打包压缩日志文件tarzcvf ${logfilename}
    .tar.gz ${logfilename}rm-rf${logfilename}# 备份访问日志文件echo"get example access log:"cd${backupfilepath}scproot@
    192.168.0.3:/
    var/
    log/
    httpd/
    example_access_log/
    ${logfilename}./
    example/
    access/cd${backupfilepath}
    example/
    access/tarzcvf ${logfilename}
    .tar.gz ${logfilename}rm-rf${logfilename}echo"done."
    

    在准备运行以上脚本以前,要先确认两台服务器之间用ssh-keygen命令生成的密钥设置了信任关系
    然后将该脚本命名为apachelog_backup.sh保存到/var/cron/目录下。

  • 确认两台服务器的备份目录都已建立好,测试一下脚本,比如到服务器A的备份目录建立一个用前一天日期命名的日志文件,内容随便,然后再到备份服务器B去先执行一下脚本,查看是否备份成功。
    最后用 crontab -e 命令在linux的定时任务中加入自动执行任务,让脚本在每天凌晨12点之后自动执行,如下:

    30 00 * * * sh /var/cron/apachelog_backup.sh

    这里设置了每天零点30分执行脚本。

转载于:https://blog.51cto.com/wapcn/1029584

apache日志设置方法:按时间、按大小记录相关推荐

  1. 常见几个方式禁止IP访问网站(PHP、Nginx、Apache不同设置方法)

    1.PHP禁止IP和IP段访问 <? //禁止某个IP $banned_ip = array ( "127.0.0.1", //"119.6.20.66" ...

  2. Apache设置文件缓存时间

    Apache要设置文件缓存时间,要依靠一个叫mod_expires的模块,但是,我们的机器上,原本是没有安装这个模块的,幸运的是,apache安装这个模块很简单, 首先找到源代码 比如我们的是2.2. ...

  3. php中session时间,php中session过期时间的设置方法

    php中session过期时间的设置方法 发布时间:2020-04-22 10:21:19 来源:亿速云 阅读:140 作者:小新 今天小编给大家分享的是php中session过期时间的设置方法,相信 ...

  4. linux 将新密码邮件发送,linux脚本实现自动发送和收取邮件的设置方法

    linux脚本实现自动发送和收取邮件的设置方法 更新时间:2013年05月11日 19:51:45   作者: 这篇文章主要是介绍linux下通过脚本自动发送和收取邮件的设置方法,有需要的朋友可以参考 ...

  5. win10切换出中文简体美式键盘,与按ALT+TAB切换窗口的设置方法

    上周加了一块固态,重新做了一次win0系统,版本号22H2.重做前的系统还是5.6年前的某个第三方打包的,几年下来有些使用习惯已经养成,比如以下两处.搜得设置方法如下,聊作记录,以备后查. 一.默认不 ...

  6. 两种常见的台式计算机,台式电脑设置开机自动读系统盘的两种设置方法

    台式电脑设置开机自动读系统盘的两种设置方法 发布时间:2014-01-22 10:16:21   作者:佚名   我要评论 怎么设置开机自动读系统盘?在此介绍常见的两种版本BIOS的具体设置,Awar ...

  7. php fpm的日志,开启php fpm错误日志的方法

    开启php fpm错误日志的方法 发布时间:2020-11-05 09:42:55 来源:亿速云 阅读:101 作者:小新 这篇文章将为大家详细讲解有关开启php fpm错误日志的方法,小编觉得挺实用 ...

  8. 清除error.log、access.log并限制Apache日志文件大小的方法

    清除error.log.access.log并限制Apache日志文件大小的方法 Apache下的access.log和error.log文件从安装服务器到现在没有动过,今天突然discuz 的MYS ...

  9. java怎么控制log文件大小,限制 Apache日志文件大小的方法

    限制 Apache日志文件大小的方法 更新时间:2009年04月28日 20:23:53   作者: access.log,件在 WEB 服务器运行一段时间之后会达到几十兆甚至上百兆,如果Apache ...

最新文章

  1. Android之NDK开发
  2. Linux服务器性能评估与优化--转
  3. 广东省计算机行业发展程度,广东省统计局-2020年1-4月广东规模以上工业生产运行简况...
  4. es6 数组合并_JavaScript学习笔记(十九)-- ES6
  5. android 动画间隔时间,Android使用View Animation实现动画加载界面
  6. 2016.09.03【初中部 NOIP提高组 】模拟赛A总结
  7. 英特尔发布全新英特尔® INDE 2015工具套件
  8. PS选择工具/魔棒工具详
  9. 如何在论文后面插参考文献
  10. Android 监听wifi热点打开和关闭广播
  11. ctfshow 萌xin赛misc
  12. python_练习2:输入a,b,c,d 4个整数,计算a+b-c*d的结果
  13. 俩个PC机通过串行口互联,实现件的无差错传输。程序必须用中断方式来完成任务
  14. 遗传算法解决旅行商问题(Python版)
  15. Android MagicIndicator 指示器 导航
  16. oracle 物化视图没效果,Oracle物化视图失效的几种情况及测试
  17. 让一切都停下来——Unschedule
  18. 华大半导体HC32F4A0笔记(五),使用CMSIS-DSP库进行FFT运算
  19. 关闭135/137/138/139/445端口防止勒索病毒
  20. SQL Server中对比表数量,索引数量及procedure数量

热门文章

  1. 不容错过的Pandas小技巧:万能转格式、轻松合并、压缩数据,让数据分析更高效...
  2. 斯坦福新书《决策算法》,694页PDF免费下载
  3. Windows XP源代码泄露,外媒从中发现隐藏Mac主题
  4. 用最骚的话让你彻底弄懂贝叶斯!
  5. 一手好 SQL 是如何炼成的?
  6. Redis源码分析:过期key删除与设置key的过期时间
  7. locust压测工具:http测试过程与定时停止
  8. 操作系统学习:内存分页与中断
  9. MySQL数据库排序order by(asc、desc)
  10. MySQL数据库介绍、安装(服务端软件安装、客户端软件安装(图形化界面客户端和命令行客户端))