定時儲存apache日誌檔案
阿新 • • 發佈:2019-01-04
之前在寫程式碼的時候,發現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