2012-11-15 74 views
5

我正在嘗試編寫一個腳本來重命名和歸檔日誌文件,但我無法弄清楚。下面是它應該如何工作的一個例子:如果你有一個名爲error_log的文件,並且你第一次運行你的腳本,它應該將文件error_log重命名爲error_log.1,然後用gzip將error_log.1歸檔。第二次運行腳本時,您將有兩個文件:error_log和error_log.1.gz,現在您應該將error_log.1.gz重命名爲error_log.2.gz; error_logerror_log.1,並再次使用gzip存檔error_log.1error_log.1.gz用於歸檔日誌文件的Bash腳本

回答

7

你在找什麼叫logrotate,這是一個基本的Unix管理命令來旋轉日誌,如你所願。

看到一個簡單的配置文件的man 8 logrotate

實施例:

/var/log/apache/error_log { 
     daily 
     rotate 90  # keep only 90 logs 
     copytruncate # don't stop apps, but copy log 
     compress  # gzip log in *.gz 
}