(转)Apache日志分割

Apache和Ngix一样,对日志没有进行分割处理,这样很不方便日志的管理,比如你想只保留最近一个星期的日志文件。另外,进行日志分割之后,也方便访问日志的分析处理和统计。参考网上的Apache日志分割方法和步骤,用一个bash脚本和任务计划进行每天的日志分割。

#!/bin/bash

LOG_PATH='/var/log/httpd/'#日志的路径

EXPIRED=7#保存7天前的日志

PID='/var/run/httpd.pid'#httpdpid路径

if[!-d${LOG_PATH}oldlog];then

mkdir${LOG_PATH}oldlog

fi

datetime=$(date-dyesterday+%Y%m%d)#昨天的日期

logs=`find$LOG_PATH-maxdepth1-typef-name'*log'`

forlogin$logs

do

fname=`echo$log|awk-F"/"'{print$NF}'`

mv${log}${LOG_PATH}oldlog/${datetime}"."${fname}

done

kill-USR1$(cat${PID})

find${LOG_PATH}oldlog-typef-mtime+${EXPIRED}-execrm-f{}

sleep5

添加任务计划:00***/usr/local/bin/Cutlog>/dev/null

每天的0点0分执行日志分割任务

需要注意的地方:kill-USR1$(cat${PID})给apache服务进程发送USR1信号,使其重新打开日志文件;否则,日志数据会继续写到重命名之后的文件里面。