Logrotate ile dosyaları silme


13

SADECE bir dizindeki günlük dosyalarını, döndürmeden logrotate kullanarak silmek mümkün mü? Günlükleri şu biçimde üreten bir uygulamamız var: app.log.DD_MM_YYYY. Aşağıdaki yapılandırmaya sahip logrotate ile başarısız oldum:

/opt/log/app/app.log.* {
         rotate 0
         missingok
         nomail
}

Günlük döndürme bunu yapabilir mi yoksa sadece bir komut dosyası yazmalı ve cron içine yerleştirmeli miyim?

En iyi, -İrlandalı


Bu günlüklere ihtiyacınız yoksa neden uygulamanızdaki günlük kaydı özelliğini devre dışı bırakmıyorsunuz?
Deeh

1
Üzgünüm ama bunu bir cevap olarak sayamıyorum Deeh. Merakınızı beslemek için, hata ayıklama gibi farklı işlemler için bu günlüklere ihtiyacımız var, onları çürümesi için orada tutmak istemiyoruz.
Iulian

Yanıtlar:


16

Bu durumda postrotate kullanmak isteyebilirsiniz. Aşağıdaki örnekte postrotate, günlükler döndürüldükten 1 gün sonra eski olan dosyaları siler, ihtiyaçlarınıza uyacak şekilde değiştirmekten çekinmeyin.

/opt/log/app/app.log.* {
        missingok
        nomail
postrotate
        /usr/bin/find /opt/log/app/ -name "app.log.*" -type f -mtime +0 -exec rm {} \;
endscript
}

4

Logrotate'in amacı, özel bir zaman aralığında özel sayıda günlük dosyası tutmaktır. Göreviniz için cron kullanırdım. Logrotate ile neler yapabileceğiniz hakkında daha fazla bilgiyi burada bulabilirsiniz: http://www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet


2
Bağlantı çürümesini önlemek için lütfen yalnızca bağlantı yanıtları göndermeyin. Bunun yerine, bağlantıdan en alakalı bilgileri yanıtınıza ekleyin veya alternatif olarak bağlantıyı yanıt yerine yorum olarak gönderin. Daha fazla bilgi için bu yardım merkezi makalesine bakın .
Sven
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.