(转)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信号,使其重新打开日志文件;否则,日志数据会继续写到重命名之后的文件里面。