Script für badblocks

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
sysoptiger
Beiträge: 349
Registriert: 08.09.2004 09:08:38
Wohnort: Griesheim
Kontaktdaten:

Script für badblocks

Beitrag von sysoptiger » 08.01.2007 18:00:23

Hallo,

ich würde gerne meine Festplatten regelmäßig mit badblocks -vs /dev/sdx testen.
Die Ausgabe der Badblocks und das Endergebnis sollte dann per Mail an root gesendet werden.
Ich hab mich da dran mal versucht.

CronJob sieht so aus

Code: Alles auswählen

/root/bin/hdcheck.sh | /usr/sbin/sendmail -t
Die Datei hat folgenden Inhalt:

Code: Alles auswählen

#!/bin/sh
echo -e "From: root"
echo -e "To: postmaster"
echo -e "Subject: HDCheck \n"
/sbin/badblocks -vs /dev/sda
/sbin/badblocks -vs /dev/sdb
Nur zeigt er damit nur die defekten Blöcke an, aber nicht das Endergebnis xxx Blöcke sind defekt.
Wie bekomme ich das noch in die Mail rein.
Auch eine bessere Trennung der Festplatten wäre gut.

MfG

Peter

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 09.01.2007 09:59:40

Hm, eventuell gibt badblocks die Info auf STDERR aus. Dann wuerde das hier helfen:

Code: Alles auswählen

/sbin/badblocks -vs /dev/sda 2>&1
Wenn du dann noch nach Platten unterteilen willst, was hindert dich daran, mit echo entsprechende Trenner auszugeben?

Code: Alles auswählen

#!/bin/sh
echo -e "From: root"
echo -e "To: postmaster"
echo -e "Subject: HDCheck \n"
echo "Scan of /dev/sda:"
/sbin/badblocks -vs /dev/sda 2>&1
echo "------------------------------------------------------------------------"
echo "Scan of /dev/sdb:"
/sbin/badblocks -vs /dev/sdb 2>&1

Benutzeravatar
sysoptiger
Beiträge: 349
Registriert: 08.09.2004 09:08:38
Wohnort: Griesheim
Kontaktdaten:

Beitrag von sysoptiger » 09.01.2007 21:44:37

Hallo,

Danke schon mal, funktioniert soweit.
Jetzt würde ich och gerne die Ausgabe filtern (Bin leider im Bash Programming nicht zuhause)
Momentan zeigt der haufenweise Ergebnisse an, etwa so:

Code: Alles auswählen

292867072/      293057351      292901312/      293057351
292935424/      293057351      292969536/      293057351
293001920/      293057351      293035904/      293057351done
Durchgang beendet, 28 defekte Blöcke gefunden.
------------------------------------------------------------------------
Scan of /dev/sdb:
Prüfe von Block 0 bis 293057351
Suche nach defekten Blöcken (Nur-Lesen-Modus):              0/      293057351
60480/      293057351         125632/      293057351
168512/      293057351         233024/      293057351
280512/      293057351         345408/      293057351
411008/      293057351         476608/      2
Ich hätte nun gerne nur den Text "Durchgang beendet...." bis " Prüfe von ......"
Die Zwischenausgaben der Prüfung sind für mich uninteressant.
Ausserdem seh ich so nicht die defekten Blöcke.

Was müßte ich da ändern?

Gruss

Peter

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 10.01.2007 10:30:24

Schau dir mal die Manpage zu grep an. Du leitest die Ausgabe von badblocks ueber | an grep weiter und filterst dann mit grep die Ausgabe.

Antworten