Bash ile Eski Logların Retention Yönetimi

0 Yanıtlar 0 Görüntülenme
·
Katılımcılar
Konuyu Açan #0
Bash ile Eski Logların Retention Yönetimi

Log dosyalarının uzun vadede büyümesi sistem performansını ve disk alanını olumsuz etkileyebilir. Bu nedenle, log yönetiminde otomasyon ve düzenli temizlik kritik hale gelir. Bash scriptleri, bu süreci basit ve etkili hale getirebilir.

İlk olarak, log dosyalarını belirli bir süredir tutmak ve eski olanları silmek için tarih ve dosya isimlendirme standartlarını kullanmak gerekir. Örneğin, günlük loglar genellikle tarih ile isimlendirilir: app-log-YYYYMMDD.log. Bu yapıya dayanarak find komutunu kullanabiliriz.

Bir örnek script şu şekilde olabilir:

KOD
1234567891011121314bash
#!/bin/bash

[b]Log dizini[/b]
LOG_DIR="/var/log/myapp"

[b]Belirlenen gün sayısı (örneğin 30 gün öncesi)[/b]
RETENTION_DAYS=30

[b]Eski logları sil[/b]
find "$LOG_DIR" -type f -name "app-log-*.log" -mtime +$RETENTION_DAYS -exec rm -f {} \;

[b]İşlem sonrası rapor[/b]
echo "$(date): $RETENTION_DAYS günden eski loglar silindi." >> /var/log/retention.log


Burada, find komutunun -mtime +30 parametresi, 30 günden eski dosyaları seçer. Bu scripti düzenli olarak çalıştırmak için cron kullanmak en uygun yöntemdir. Örneğin, günlük veya haftalık zamanlamalar belirlenebilir.

Dikkat edilmesi gereken noktalar:
  • Log dosya isimlendirme standardı tutarlı olmalı.
  • Silme işlemi öncesinde yedekleme veya arşivleme opsiyonu düşünülmeli.
  • Script ve cron ayarları güvenlik açısından uygun yetkilerle sınırlandırılmalı.


Elinizdeki log yönetim ihtiyaçlarına göre, bu temel scripti geliştirebilir, farklı kriterler ekleyebilir veya farklı saklama politikaları belirleyebilirsiniz.

Siz de sisteminizde otomatik log temizliği yaparken nelere dikkat ediyorsunuz? Belki kendi yöntemleriniz veya kullandığınız araçlar vardır; paylaşabilirsiniz.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi