linux 刪除日誌腳本

線上有一個日誌系統,放在/data/log目錄,有時候出現磁盤空間不足的狀況,因此寫了一個腳本,刪除前一天的日誌文件。bash

內容以下:ide


#!/bin/bashspa


eve=`date -d "1 day ago" +"%Y%m%d"`rest

startime=`date +%Y-%m-%d" "%H:%M:%S`日誌

echo "######################################" >> /opt/clean_log.logit


echo "$startime 開始刪除文件/data/log/messages-$eve" >> /opt/clean_log.logclass

rm -rf /data/log/messages-$evedate


if [ ! -e /data/log/messages-$eve ];thenfile

        echo "刪除成功" >> /opt/clean_log.logim

else

        echo "刪除失敗" >> /opt/clean_log.log

fi


startime=`date +%Y-%m-%d" "%H:%M:%S`

echo "$startime 開始切割文件/var/log/message" >> /opt/clean_log.log

cd /var/log/

mv -f messages messages-$eve


if [ -e /var/log/messages-$eve ];then

        echo "切割成功" >> /opt/clean_log.log

else

        echo "切割失敗" >> /opt/clean_log.log

fi


/etc/init.d/rsyslog restart >> /dev/null


if [ `echo $?` -eq "0" ];then

        echo "重啓rsyslog服務成功" >> /opt/clean_log.log

else

        echo "重啓rsyslog服務失敗" >> /opt/clean_log.log

fi


startime=`date +%Y-%m-%d" "%H:%M:%S`

echo "$startime 開始刪除文件/var/log/message-$eve" >> /opt/clean_log.log

rm -rf /var/log/messages-$eve


if [ ! -e /var/log/messages-$eve ];then

        echo "刪除文件成功" >> /opt/clean_log.log

else

        echo "刪除文件失敗" >> /opt/clean_log.log

fi


說明:

rm -rf刪除的時候,無論文件是否存在

用 echo $? 判斷的時候,始終都是0

因此用! -e $filename 判斷文件不存在,就說明文件刪除成功了。


/var/log/message是系統日誌,雖然系統默認會自動切割,但不是天天都會切割。

因此腳本里面進行了切割。

一旦切割以後,message不會自動生成,須要重啓rsyslog服務纔會生成。


最後建立任務計劃,天天晚上按期執行就能夠了。

相關文章
相關標籤/搜索