运维百科

Apache配置实现日志按天分割并删除指定几天前的日志

  Apache日志默认情况下是一周切割一次,由于访问量大的时候日志的文件还是比较大的,同时也不利于管理员对日志的分析处理。于是尝试对Apache日志设置按天分割,并通过计划任务执行删除几天的日志。

下面对两条配置命令做一下说明:

#ErrorLog logs/error.log  //注释掉默认日志设置
ErrorLog "|/usr/local/apache/bin/rotatelogs /home/wwwlogs/IP-error_%Y_%m_%d.log 86400 480"

#CustomLog logs/access.log common  //注释掉默认日志设置
CustomLog "|/usr/local/apache/bin/rotatelogs /home/wwwlogs/IP-access_%Y_%m_%d.log 86400 480" common

  使用命令rotatelogs 对日志进行切割,查找该命令的位置使用:which rotatelogs 

  指定日志文件的位置和名称/home/wwwlogs/IP-access_%Y_%m_%d.log 

  指定分割时间:86400  默认单位为s。也就是24小时

  指定分区时差:480  默认单位m,也就是8小时


日志清理脚本:

#!/bin/bash
###########################################################
#Comment:http_clear_logs.sh                               #
#Path:/opt/shell                                          #
#Crontab: 0 3 * * * sh /opt/shell/http_clear_logs.sh      #
#Vesion:v1.0                                              #
###########################################################
 
#the date 7 days ago
Date_7=`date -d "-5 day" +%Y%m%d`
http_log_path="/home/wwwlogs/"
 
#clear logs
rm -fr ${http_log_path}/IP-access_${Date_7}
rm -fr ${http_log_path}/IP-error_${Date_7}


本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!

1
分享到:

评论 0

取消
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址