2016-05-23 51 views
1

我想在tomcat中爲訪問,主機管理器和管理器日誌運行logrotate。我已經編寫了以下腳本,它們在輪換之後已經被清空文件。除此之外,postrotate和preroate的刪除和壓縮工作正常。日誌文件在旋轉後變成零大小

/srv/www/tomcat/Container*/logs/access* 
/srv/www/tomcat/Container*/logs/catalina.*.log 
/srv/www/tomcat/Container*/logs/host-manager.*.log 
/srv/www/tomcat/Container*/logs/localhost.*.log 
/srv/www/tomcat/Container*/logs/manager.*.log 

{ 
    missingok 
    notifempty 
    daily 
    rotate 0 
    prerotate 
     /bin/find /srv/www/tomcat/Container*/logs/ -maxdepth 1 -mtime +2 -name "*.log" -exec gzip {} \; || true 
     endscript 
    postrotate 
     /bin/find /srv/www/tomcat/Container*/logs/ -mindepth 1 -mtime +10 -name "*.gz" -delete || true 


    endscript 
} 
+1

在哪裏清空命令? – CSchulz

+0

我的意思是,這些文件有一些MB大小,雖然旋轉後文件被壓縮並變成空的大小,但所有的日誌文件內容都被清除了。它不應該是我的。 例如: access.2016-05-19.log - >這是101Mb之前旋轉 access.2016-05-19.log.gz - > 0Mb旋轉後 –

回答

0

以下應該工作,壓縮每一個旋轉的文件,並使用最大生存週期,而不是你的find命令:

{ 
    missingok 
    notifempty 
    daily 
    compress 
    maxage 12 
} 

如果你想兩天後壓縮:

{ 
    missingok 
    notifempty 
    daily 
    maxage 12 
    postrotate 
     /bin/find /srv/www/tomcat/Container*/logs/ -maxdepth 1 -mtime +2 -name "*.log.?" -exec gzip {} \; 
    endscript 
}