1. 程式人生 > >定時儲存apache日誌檔案

定時儲存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