3ware raid5 mit clir und crontabs überwachen

Post Reply
Message
Author
peter6746

3ware raid5 mit clir und crontabs überwachen

#1 Post by peter6746 »

Hallo,

Ich habe einen 3ware Hardware Raid5 unter SuseLinux 10 Enterprise eingerichtet. Dies funktioniert auch!!!!,Das Problem ist nur das dieses Raid überwacht werden soll, dazu habe ich auch das passende toll gefunden und von der Hersteller Seite gezogen. Dieses funktioniert auch, jetzt möchte ich aber benachrichtigt werden wenn eine Festplatte abraucht !!!!!!! Diese Funktion wollte ich über einen crontab und ein script ermöglichen.
Der crontab sieht wie folgt aus:

*/15 * * * * root test -x /usr/local/sbin/check_raid.sh && /usr/local/sbin/check_raid.sh

Dieser führt ein Script (check_raid.sh) jede 15min aus. Das Script lautet wie folgt

Code: Select all

#!/bin/sh 
#
# This script checks
#
# - RAID Status
# - Drive Status
#
# on a 3ware 7006-2 ATA RAID Controller.
#
# returns 1 if RAID error was detected, 2 if DISK error was detected
#
# Marcus T. Jaschen < rikman &#40;@&#41; gmail >
# 2006-02-03
#

# tw_cli binary location
TWCLI=/usr/local/sbin/tw_cli

# controller name
CONTROLLER=c2

# get complete status
STATUS_CONTROLLER=`$TWCLI /$CONTROLLER show`

# check for RAID status
STATUS_RAID=`echo "$STATUS_CONTROLLER" | grep "^u0" | awk '&#123; print $3; &#125;'`

&#91;&#91; $STATUS_RAID != "OK" &#93;&#93; && &#123;
	echo "#################################################"
	echo "#             RAID ERROR DETECTED&#58;              #"
	echo "#################################################"
	echo "$STATUS_CONTROLLER"
	exit 1
&#125;

# check for disk status
STATUS_DISKS=`echo "$STATUS_CONTROLLER" | grep "^p&#91;&#91;&#58;digit&#58;&#93;&#93;" | awk '&#123; print $2; &#125;'`

&#91;&#91; -z `echo "$STATUS_DISKS" | grep -v "^OK$"` &#93;&#93; || &#123;
	echo "#################################################"
	echo "#             DISK ERROR DETECTED&#58;              #"
	echo "#################################################"
	echo "$STATUS_CONTROLLER"
	exit 2
&#125;

exit 0
Dieses Script benachrichtigt mich aber alle 15 min mit folgender Fehlermeldung:

Code: Select all

From root@node1.site  Tue Sep 25 17&#58;51&#58;04 2007
Return-Path&#58; <root@node1.site>
X-Original-To&#58; root
Delivered-To&#58; root@node1.site
Received&#58; by node1.site &#40;Postfix, from userid 0&#41;
	id 5B10317D7F; Tue, 25 Sep 2007 17&#58;51&#58;01 +0200 &#40;CEST&#41;
From&#58; root@node1.site
To&#58; root@node1.site
Subject&#58; Cron <root@node1> root test -x /usr/local/3ware/check_raid.sh && /usr/local/3ware/check_raid.sh
X-Cron-Env&#58; <SHELL=/bin/sh>
X-Cron-Env&#58; <HOME=/root>
X-Cron-Env&#58; <PATH=/usr/bin&#58;/bin>
X-Cron-Env&#58; <LOGNAME=root>
X-Cron-Env&#58; <USER=root>
Message-Id&#58; <20070925155104.5B10317D7F@node1.site>
Date&#58; Tue, 25 Sep 2007 17&#58;51&#58;01 +0200 &#40;CEST&#41;

/bin/sh&#58; root&#58; command not found
Es sollte mich aber nur im Ernstfall benachrichtigen, wenn eine Platte defekt ist!!!!!!!!!Was ist an dem Script falsch, habe keine Erfahrung mit so etwas!!
Danke schonmal im vorraus

mfg peter

[/list][/code]

sumsi

root

#2 Post by sumsi »

Als Befehlsaufruf im cron "root". Na ja, das Programm kenne ich auch nicht.

Dokus gibts:
man 5 crontab oder
linux-praxis.de

bye sumsi

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#3 Post by Janka »

Ich gehe mal davon aus, dass /bin/sh ein Link auf bash ist. Dann gehören da nur einfache Brackets "[" um den zu prüfenden Ausdruck, keine doppelten.

Abgesehen davon ist es meines Erachtens sinnvoller, den Syslog so umzukonfigurieren, dass kritische Fehler an ohnehin per Mail verschickt werden. Dann braucht man nicht alle paar Minuten pollen, sondern bekommt gleich die Meldungen per Mail, sobald der Treiber sie in den Syslog schreibt.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

peter783

#4 Post by peter783 »

Danke für die Antworten!!!
Wie schreibe ich die syslogs den um ,sodass sie mir den Fehler melden? Hättet ihr vielleicht eine Anleitung???

mfg peter

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#5 Post by Janka »

Man kann in /etc/syslog-ng/syslog-ng.conf eine weitere

Code: Select all

destination mymail &#123; 
	program&#40;"/usr/bin/mailx loguser@loghost"&#41;; 
&#125;;
hinzufügen und dann die zuvor passend gefilterten Nachrichten dorthin umleiten.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Post Reply