apache日志分割shell脚本一例

发布时间:2020-11-10编辑:脚本学堂
分享一个apache日志分割脚本,用bash实现的apache日志分割脚本,每天定时分割日志文件,需要的朋友参考下。

apacherizhi/ target=_blank class=infotextkey>apache日志进行分割,可以方便访问日志的分析处理和统计。
参考apache日志分割方法和步骤,用bash脚本和任务计划进行每天的日志分割。apache按天截断日志 rotatelogs使用方法

1,shell/ target=_blank class=infotextkey>shell脚本:
 

复制代码 代码示例:
#!/bin/bash
LOG_PATH='/var/log/httpd/' #日志的路径
EXPIRED=7                       #保存7天前的日志
PID='/var/run/httpd.pid'    #httpd pid路径
 
if [ ! -d ${LOG_PATH}oldlog ]; then
mkdir ${LOG_PATH}oldlog
fi
 
datetime=$(date -d yesterday +%Y%m%d) #昨天的日期
logs=`find $LOG_PATH -maxdepth 1 -type f -name '*log'`
 
for log in $logs
do
fname=`echo $log | linuxjishu/13830.html target=_blank class=infotextkey>awk -F "/" '{print $NF}'`
mv ${log} ${LOG_PATH}oldlog/${datetime}"."${fname}
done
 
kill -USR1 $(cat ${PID})
find ${LOG_PATH}oldlog -type f -mtime +${EXPIRED} -exec rm -f {}
sleep 5

2,添加任务计划:
 

0 0 * * * /usr/local/bin/Cutlog > /dev/null

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

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