16 Ekim 2007

Disklerin dolduğunu haber veren script

Bu aralar, kurduğum linux proxy-firwall sistemleri izlemeyi daha kolay hale getirmeye çalışıyorum. Log analiz programları ile haşır-neşirim son zamanlarda. swatch programı ilgimi çekmeye başladı. Program, log dosyalarında belirlediğiniz herhangi bir ifade geçerse isterseniz size e-posta atıyor, isterseniz komut/komutlar çalıştırıp bir iş yaptırılabiliyor. Yani mesela auth.log dosyasında herhangi bir satırda "illegal user" ifadesi geçerse bana e-posta gönder diyorsunuz; swatch, log dosyasını dinlemeye başlıyor ve sisteminize yapılan ssh bağlantı denemesi(saldırısı) olduğunda size e-posta atıyor. Durumdan anında haberdar oluyorsunuz. Senaryolar çoğaltılabilir tabi.... Şu günlükte de uygulama konusunda güzel bilgiler var. Yazanın eline sağlık.

Henüz denemeler yapıp yazılımı test ediyorum. Bu denemelerimde disk dolduğu zaman bana e-posta atmasını sağlayamadım. Fazla da uğraşmadım ve kendi işimi kendim görmeye karar verdim. Hemen şöyle bir script yazdım:


#!/bin/sh

if
    df -h | egrep "90%|91%|92%|93%|94%|95%|96%|97%|98%|99%|100%"

then

    df -h > disk.txt
    echo " " >> disk.txt
    echo " " >> disk.txt
    du -sh /var/* >> disk.txt
    mail -s "[Proxy-Hastane] Disk Doluyor!" tirtil@zabazingo.com < disk.txt
    rm disk.txt

fi


Görüldüğü gibi basit bir 'eğer' kalıbı ile işimi hallettim.

Önce disk bölümlerinin doluluk oranına bakıp bu çıktıda %90 ve üzeri bir ifade var mı ona bakıyoruz. Eğer bu ifade var ise disk bölümlerinin doluluk oranlarının bilgisi ile /var dizininde bulunan dosya ve dizinlerin boyutlarını disk.txt dosyasına yazıp, bu dosyayı e-posta ile gönderiyoruz. Hepsi bu...

Bu scripti crontab'a ekleyip günde bir kez çalıştırmak yeter sanırım.

1 yorum:

Serkan Denizbey dedi ki...

Akillica bir cozum. Tebrikler :)