2013-06-21 49 views
0

我有一個自定義腳本正在運行,我想將腳本的輸出和幾個執行階段重定向到一個日誌文件。日誌文件翻轉

我的要求是 - 當日志文件超過20 MB大小時,我將把內容移動到一個新文件中,然後我的腳本重新創建日誌文件。在任何時候,我都會備份最近的日誌內容。我試圖想出以下邏輯:

if [ -e "$logfile" ] 

then 

    logsize=ls -l $logfile |awk '{print $5}' 

    ls -l $logfile |awk '{print $5}' 

    if [ "$logsize" -gt 2097152 ] 

    then 

     mv $logfile $(date +"%Y%m%d%H%M").log 

     touch $logfile 

    fi 

else 

    touch $logfile 

fi 

我想獲得專家的想法,如果有做這個任務的任何其他有效的方式PLZ讓我知道。

回答

1

我認爲你應該使用logrotate命令,或者建立一個自定義腳本。

有讀這個guide

您的要求的配置實例會是這樣的:

/var/log/logfile { 
    missingok 
    size 20M  
    rotate 5 

}

+0

感謝Ander2您的輸入 – user2190101