Log dosyalarının boyut kontrolü ve belirli bir threshold aşımında alarm verme, sistem yöneticileri için kritik bir otomasyon alanıdır. Bash scriptleri kullanarak bu işlemi oldukça kolay bir şekilde gerçekleştirebilirsiniz. Bu yöntem, özellikle günlük logların düzenli yönetimi ve disk alanı yönetimi açısından faydalı olur.
İlk olarak, belirli bir log dosyasının boyutunu kontrol etmek için
veya
komutlarını kullanabilirsiniz. Ancak, en pratik ve yaygın yöntem
veya
ile dosya boyutunu bayt cinsinden almak olur. Bu değeri, önceden belirlenmiş threshold ile karşılaştırıp, aşım durumunda uyarı veya alarm tetikleyebilirsiniz.
Örnek:
- Log dosyasının yolu: /var/log/myapp.log
- Threshold: 50MB (50 * 1024 * 1024 = 52428800 bayt)
Basit bir script şu şekilde olabilir:
123456789101112131415bash
#!/bin/bash
LOG_FILE="/var/log/myapp.log"
THRESHOLD=52428800 # 50MB
if [ -f "$LOG_FILE" ]; then
FILE_SIZE=$(stat -c%s "$LOG_FILE")
if [ "$FILE_SIZE" -gt "$THRESHOLD" ]; then
echo "Uyarı: Log dosyası $LOG_FILE boyutu $FILE_SIZE bayt ile eşik değeri aşıyor!"
# Burada e-posta veya başka alarm mekanizmaları eklenebilir
fi
else
echo "Hata: Log dosyası bulunamadı: $LOG_FILE"
fi
Bu script, temel anlamda dosya bulunabilirliğini kontrol eder, boyutu ölçer ve threshold ile karşılaştırır. Bu yapıyı düzenli olarak cron ile çalıştırmak, otomatik takip sağlar. Ayrıca, alarm mekanizmasını (e-posta, webhook, SMS gibi) entegre etmek, sisteminizin anlık durumu hakkında zamanında bilgi sahibi olmanızı sağlar.
Sizler bu tarz sistemleri nasıl otomatik hale getiriyorsunuz? Ekstra özellikler veya farklı yöntemler öneren var mı?