Softwareraid auf Funktion prüfen
Prüfen ob ein Linux-Softwareraid noch funktioniert
Folgendes Linux-Shellscript (für Gentoo) prüft ob ein Softwareraid noch funktioniert und schickt bei auftreten eines Fehlers ein Email an die
angegebene Emailadresse (MAILTO).
:-)
#!/bin/sh # # file: raidmonitor # Script zur Ueberpruefung ob Raid laeuft # Getested mit Gentoo-Linux # Erstellt von Joerg Bornkessel 20/02/2004 # Leicht geaendert von Gerold Penz 2004-01-24 # Eintrag in /etc/crontab vornehmen , i.E. # 0 0-23/1 * * * root /sbin/raidmonitor 2>&1 > /dev/null # und # # Zum starten beim Systemstart: # /sbin/raidmonitor # in /etc/conf.d/local.start eintragen. # MAILTO="root" SENDMAILCMD="/usr/sbin/sendmail -t -oi" RAIDHOST=`/bin/hostname` HOST=`/bin/dnsdomainname` TMPFILE="/tmp/$RANDOM.tmp" START_LOG="/tmp/$RANDOM.log" ZEIT=`date +%R%n%d-%m-%Y` #### Farbzuweisung, Dank an CyBerian @ http://forums.gentoo.org # xecho() #(text, x, y, fgColor, bold) { #set position if given if [ $2 -ne -1 ] ; then if [ $3 -ne -1 ] ; then tput cup $3 $2 fi fi #set color if valid color is given if [ "`echo $4|cut -c-6`" = "bright" ] ; then color=`echo $4|cut -c7-` pre_color_code="\033[01;3" else pre_color_code="\033[00;3" color=$4 fi case "$color" in # black) colorcode="${pre_color_code}0m";; red) colorcode="${pre_color_code}1m";; # green) colorcode="${pre_color_code}2m";; # yellow) colorcode="${pre_color_code}3m";; # blue) colorcode="${pre_color_code}4m";; # lila) colorcode="${pre_color_code}5m";; cyan) colorcode="${pre_color_code}6m";; # grey) colorcode="${pre_color_code}7m";; # *) colorcode="";; esac #print out the given string printf "${colorcode}$1\033[00;00m" #return and restore variables return } # ### Ende Farbzuweisung, Ende Dank an ... # Function zur Mail Benachrichtigung writemail() { echo "To: $MAILTO " > $TMPFILE echo "SUBJECT: *** ALARM! RAID FEHLER *** " >> $TMPFILE echo "X-Priority: 1 (Highest)" >> $TMPFILE echo "Reply-To: root@$HOST" >> $TMPFILE echo "Errors-To: root@$HOST" >> $TMPFILE echo "" >> $TMPFILE echo "RAID Fehler auf $RAIDHOST" >> $TMPFILE echo "$ZEIT" >> $TMPFILE cat $TMPFILE | $SENDMAILCMD rm -f $TMPFILE } # Ueberpruefung mit grep auf _ # grep '[\[U]_' /proc/mdstat >$START_LOG LOG="`wc -l <$START_LOG`" if [ $LOG -gt 0 ] ; then #xecho " *** WARNUNG !!! RAID DO NOT WORK ***" \ -1 -1 "brightred" echo " *** WARNUNG !!! RAID DO NOT WORK ***" echo "" logger -t raidmonitor RAID DO NOT WORK -- writemail else #xecho " Raid - Status O.K." -1 -1 "brightcyan" echo " Raid - Status O.K." echo "" # Die folgende Zeile kann kommentiert werden # um die syslog nicht zu sehr zu belasten. logger -t raidmonitor raid o.k. -- fi rm -f $START_LOG #Ende farbe & grep & syslog & mailversand
lg
Gerold
:-)