Apache log归档和删除

对于Apache access log,要确保这些log可以定时的被清理,要将每天产生的日志文件分成到不同的文件中去,即每天产生新的日志文件,然后将每天的日志文件压缩归档后删除,首先在httpd.conf中配置下ErrorLog和CustomerLog的格式以及存放位置:


ErrorLog  "|/usr/local/apache/bin/rotatelogs /var/log/error_log.%Y%m%d 86400"

CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access_log.%Y%m%d 86400" combined_elb env=logit


这里用到了rotatelogs来滚动日志,顺便简单的介绍一下apache rotatelogs:

rotatelogs是一个配合Apache管道日志功能使用的简单程序。举例:
CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common
此配置会建立文件"/var/logs/logfile.nnnn",其中的nnnn是名义上的日志启动时的系统时间(此时间总是滚动时间的倍数,可以用于cron脚本的同步)。在滚动时间到达时(在此例中是24小时以后),会产生一个新的日志。
CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common
此配置会在日志文件大小增长到5兆字节时滚动该日志。
ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"
此配置会在错误日志大小增长到5兆字节时滚动该日志,日志文件名后缀会按照如下格式创建:errorlog.YYYY-mm-dd-HH_MM_SS 。

这几可以采用 crontab来设置自动化执行脚本,这里也简要介绍下crontab

crontab文件的含义:
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute   hour   day   month   week   command
其中:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

这样我们可以选择每天的两点来执行一个压缩和分割脚本:

0 2 * * * * /usr/cron/job_log_daily_zip > /dev/null 2>&1

我们可以进行压缩和删除操作:

#!/bin/bash


YESTERDAY=`date -d yesterday +%Y%m%d`
cd /var/log/apache


if [  -f "access_log.${YESTERDAY}" ]; then
tar cvzf access_log.${YESTERDAY}.tar.gz access_log.${YESTERDAY}
mv  access_log.${YESTERDAY}.tar.gz  ./hist
rm -f access_log.${YESTERDAY}
fi


if [  -f "error_log.${YESTERDAY}" ]; then
tar cvzf error_log.${YESTERDAY}.tar.gz error_log.${YESTERDAY}
mv  error_log.${YESTERDAY}.tar.gz  ./hist
rm -f error_log.${YESTERDAY}
fi


if [  -f "https_access_log.${YESTERDAY}" ]; then
tar cvzf https_access_log.${YESTERDAY}.tar.gz https_access_log.${YESTERDAY}
mv  https_access_log.${YESTERDAY}.tar.gz  ./hist
rm -f https_access_log.${YESTERDAY}
fi


if [  -f "https_error_log.${YESTERDAY}" ]; then
tar cvzf https_error_log.${YESTERDAY}.tar.gz https_error_log.${YESTERDAY}
mv  https_error_log.${YESTERDAY}.tar.gz  ./hist
rm -f https_error_log.${YESTERDAY}
fi


这样就大功告成啦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值