Új hozzászólás Aktív témák

  • vargalex

    Topikgazda

    válasz itanczos #41460 üzenetére

    Szia!

    Ugyan nem router, nem is OpenWrt, nem is USB, de a kis NAS-omon (Seagate GoFlex Net) Arch Linux alatt én is egy smartmontools-os ellenőrzést iktattam be. Egyszerűen cron-ból óránként ütemeztem. A script a következő:

    #!/bin/sh
    export MAILRC=/home/gavarga/scripts/mailrc
    export LC_CTYPE=hu_HU.UTF-8
    WORKINGDIR=/root/smarttest
    SDACHANGED=0
    SDBCHANGED=0
    RESFILE=$WORKINGDIR/smartres.txt

    /usr/sbin/smartctl -d sat -A /dev/sda | tail -n +8 | sed '/^\( 1\| 4\| 7\| 9\|190\|193\|194\|195\)/d' | awk '{print $2," - ", $10}' > $WORKINGDIR/smart_sda_new.txt
    /usr/sbin/smartctl -d sat -A /dev/sdb | tail -n +8 | sed '/^\( 4\| 9\|193\|194\)/d' | awk '{print $2," - ", $10}' > $WORKINGDIR/smart_sdb_new.txt

    if [ -r $WORKINGDIR/smart_sda_old.txt ]; then
    echo "SDA smart data changed!!!" > $RESFILE
    echo "------------------------------------" >> $RESFILE
    diff $WORKINGDIR/smart_sda_old.txt $WORKINGDIR/smart_sda_new.txt >> $RESFILE 2>&1
    if [ $? -eq 1 ]; then
    SDACHANGED=1
    echo "------------------------------------" >> $RESFILE
    mv $WORKINGDIR/smart_sda_new.txt $WORKINGDIR/smart_sda_old.txt
    else
    rm $RESFILE
    rm $WORKINGDIR/smart_sda_new.txt
    fi
    else
    mv $WORKINGDIR/smart_sda_new.txt $WORKINGDIR/smart_sda_old.txt
    fi

    if [ -r $WORKINGDIR/smart_sdb_old.txt ]; then
    echo "SDB smart data changed!!!" >> $RESFILE
    echo "------------------------------------" >> $RESFILE
    diff $WORKINGDIR/smart_sdb_old.txt $WORKINGDIR/smart_sdb_new.txt >> $RESFILE 2>&1
    if [ $? -eq 1 ]; then
    SDBCHANGED=1
    echo "------------------------------------" >> $RESFILE
    mv $WORKINGDIR/smart_sdb_new.txt $WORKINGDIR/smart_sdb_old.txt
    else
    rm $WORKINGDIR/smart_sdb_new.txt
    fi
    else
    mv $WORKINGDIR/smart_sdb_new.txt $WORKINGDIR/smart_sdb_old.txt
    fi

    if [ $SDACHANGED -eq 1 -o $SDBCHANGED -eq 1 ]; then
    cat ${RESFILE} | /usr/bin/mailx -n -s "Smart data changed!" yourmail@gmail.com
    fi
    if [ -w $RESFILE ]; then
    rm ${RESFILE}
    fi

    Ez, mint látható, 2 meghajtót ellenőriz (most már RAID0-ban van a 2 HDD) és ha valamelyik SMART attribútuma változott, akkor küld róla egy e-mail-t. A smartctl parancsnál a sed-el az adott HDD-nél nem fontos (pl. Power-On-Hours), vagy nem jól értelmezett attribútumokat kihagyom. A levél törzsében a korábbi SMART adatokkal diff-elt új adatok lesznek benne (tehát az, hogy mi változott mire).

    Kis szépséghibája az, hogy ha az SDA SMART adatai változtak, akkor a levélben mindenképpen benne lesz az is, hogy "SDB smart data changed!!!". De ezt egyszerű kiszedni, csak nem volt több időm foglalkozni vele. Kis módosítással (pl. mailx cseréje msmtp-re) futhat ez a routeren is.

    Alex

Új hozzászólás Aktív témák