Rain WikiWindows · Linux · Android

logrotate

HizmetÇoğu Linux dağıtımı

logrotate, diskleri doldurmamaları için günlük dosyalarını döndüren, sıkıştıran ve kaldıran bir Linux aracıdır. Genellikle bir systemd zamanlayıcısı veya cron görevi tarafından günde bir kez çalıştırılır; /etc/logrotate.conf dosyasını ve /etc/logrotate.d/ içindeki paket başına kuralları okur.

1Tipik bir kural

Bir kural; bir veya daha fazla günlük dosyası ile daily veya weekly (ne sıklıkta), rotate 7 (kaç eski dosyanın saklanacağı), compress (eski dosyaları gzip ile sıkıştırma), missingok (dosya yoksa hata vermeme), notifempty (boş günlükleri atlama) ve postrotate ... endscript (döndürme işleminden sonra çalıştırılacak komut, örneğin günlüğü yeniden açmak için) gibi yönergeleri adlandırır.

2copytruncate

Bazı programlar aynı açık dosyaya yazmaya devam eder. copytruncate, dosyayı taşımak yerine günlüğü kopyalar ve ardından orijinalini kısaltır; böylece program dosya tanıtıcısını korur, ancak kopyalama sırasında yazılan birkaç satır kaybolabilir.

3Test Etme

logrotate -d /etc/logrotate.conf komutu hata ayıklama modunda çalışır ve yalnızca ne yapılacağını yazdırır. -f ise zamanı gelmemiş olsa bile bir döndürmeyi zorlar.

Kural ekleme ve test etme

  1. /etc/logrotate.d/myapp dosyasını günlük yolu ve weekly, rotate 4, compress, missingok, notifempty gibi yönergelerle oluşturun.
  2. Ön çalışma: sudo logrotate -d /etc/logrotate.d/myapp
  3. Çıktı doğru görünüyorsa, tek bir döndürmeyi zorlayın: sudo logrotate -f /etc/logrotate.d/myapp
  4. Sonucu kontrol edin: günlük dizininde ls -l çalıştırın.

Dikkat

  • Yanlış bir yol kalıbı, diğer programların günlüklerini döndürebilir veya silebilir.
  • systemd journal tarafından yönetilen günlükler logrotate tarafından değil, journald.conf içinde sınırlandırılır.

Kaynaklar

  1. logrotate(8) man7.org
  2. logrotate(8) (Debian) manpages.debian.org

Son gözden geçirme: