定时保存apache日志文件

之前在写代码的时候,发现apache的日志文件太大了,就想写个脚本定时备份apache日志文件。

需要注意,文件在备份之后,如果直接删除原日志文件,因为apache还是持有原文件的句柄,如果不重启apache,后面的日志将会写入不进去。解决方案是不删除原日志文件,而是清空里面的内容。

#!/bin/bash
#初始化文件路径,日期等信息
YEAR=`(date +"%Y")`
MONTH=`(date +"%m")`
DAY=`(date +"%d")`
LOGBASE=/var/log/apache2

ACCESSBASE=$LOGBASE/access
ACCESSLOGFILE=$ACCESSBASE/$YEAR$MONTH$DAY.log

#创建目标文件夹,复制日志文件并将清空日志文件内容
mkdir -p $ACCESSBASE
chmod -R 777 $ACCESSBASE
cp $LOGBASE/access_log $ACCESSLOGFILE
> $LOGBASE/access_log

ERRORBASE=$LOGBASE/error
ERRORLOGFILE=$ERRORBASE/$YEAR$MONTH$DAY.log

mkdir -p $ERRORBASE
chmod -R 777 $ERRORBASE
cp $LOGBASE/error_log $ERRORLOGFILE
> $LOGBASE/error_log


你可能感兴趣的:(linux)