3ware raid5 mit clir und crontabs überwachen
Posted: 25. Sep 2007 15:35
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
Dieses Script benachrichtigt mich aber alle 15 min mit folgender Fehlermeldung:
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]
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 (@) 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 '{ print $3; }'`
[[ $STATUS_RAID != "OK" ]] && {
echo "#################################################"
echo "# RAID ERROR DETECTED: #"
echo "#################################################"
echo "$STATUS_CONTROLLER"
exit 1
}
# check for disk status
STATUS_DISKS=`echo "$STATUS_CONTROLLER" | grep "^p[[:digit:]]" | awk '{ print $2; }'`
[[ -z `echo "$STATUS_DISKS" | grep -v "^OK$"` ]] || {
echo "#################################################"
echo "# DISK ERROR DETECTED: #"
echo "#################################################"
echo "$STATUS_CONTROLLER"
exit 2
}
exit 0
Code: Select all
From root@node1.site Tue Sep 25 17:51:04 2007
Return-Path: <root@node1.site>
X-Original-To: root
Delivered-To: root@node1.site
Received: by node1.site (Postfix, from userid 0)
id 5B10317D7F; Tue, 25 Sep 2007 17:51:01 +0200 (CEST)
From: root@node1.site
To: root@node1.site
Subject: Cron <root@node1> root test -x /usr/local/3ware/check_raid.sh && /usr/local/3ware/check_raid.sh
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20070925155104.5B10317D7F@node1.site>
Date: Tue, 25 Sep 2007 17:51:01 +0200 (CEST)
/bin/sh: root: command not found
Danke schonmal im vorraus
mfg peter
[/list][/code]