logrotate
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
/etc/logrotate.d/myappdosyasını günlük yolu ve weekly, rotate 4, compress, missingok, notifempty gibi yönergelerle oluşturun.- Ön çalışma:
sudo logrotate -d /etc/logrotate.d/myapp - Çıktı doğru görünüyorsa, tek bir döndürmeyi zorlayın:
sudo logrotate -f /etc/logrotate.d/myapp - 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.
İlgili makaleler
- journalctl ve systemd günlüğüjournalctl ile günlüklerin nasıl okunacağı, günlüğün ne kadar alan kapladığının nasıl kontrol edileceği ve --vacuum seçenekleriyle güvenli bir şekilde nasıl küçültüleceği.
- du ve ncdu ile disk kullanımıBir Linux diskini neyin doldurduğunu du ve etkileşimli ncdu ile tek bir dosya sisteminde kalma seçenekleriyle nasıl bulacağınızı öğrenin.
- cron ve crontabcron'un zamanlanmış işleri nasıl çalıştırdığı, beş crontab zaman alanı, sistem cron dosyalarının bulunduğu yerler ve systemd zamanlayıcılarının karşılaştırması.
Kaynaklar
- logrotate(8) man7.org
- logrotate(8) (Debian) manpages.debian.org
Son gözden geçirme: