3ware per script auslesen und Resultat mailen
![](https://seccdn.libravatar.org/avatar/d8f80cfe82b1e886c689256ed208caed.jpg?s=120&d=mm&r=g)
Hallo, es ist hier schon mal was dazu gemailt worden aber ich finde es nicht wieder. Wie kann ich einen 3ware-Controller per Script auslesen und das Resultat per Mail versenden? tw_cli öffnet ja eher ein Terminal in dem man Befehle absetzen kann. Danke -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/7fa600f34baf52463850bc9c2d2719fa.jpg?s=120&d=mm&r=g)
Ralf Prengel wrote:
Hallo,
es ist hier schon mal was dazu gemailt worden aber ich finde es nicht wieder. Wie kann ich einen 3ware-Controller per Script auslesen und das Resultat per Mail versenden? tw_cli öffnet ja eher ein Terminal in dem man Befehle absetzen kann.
Das geht auch scriptgesteuert. Hier ist ein Script, welches die Temperatur der Festplatten ausliest (bei mir läuft ein 9550: function find_controller { result="1" c=0 while [ "$result" -ne "0" ] ; do echo "Teste $c..." tw_cli /c${c} show > /dev/null 2>&1 result=$? if [ "$result" -eq "0" ] ; then echo "Controller found in slot $c" else echo "no Controller in slot $c" c=$(($c + 1)) fi if [ "$c" -gt "10" ] ; then echo "no controller found on system" exit 1 fi done find_controller=$c } CLI=$(which tw_cli) || exit 1 controller=$((find_controller)) number_of_drives=$(${CLI} /c${controller} show numdrives| cut -d"=" -f 2) for ((i=0; i < $number_of_drives ; i+=1)) do temp=$(smartctl -a -d3ware,${i} /dev/twa0 | egrep '^194' | awk '{print $4}') echo "Temperatur Festplatte ${i}: $temp" done Damit solltest du für deine Experimente einen Anfang haben. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@)drobic (.) de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/d8f80cfe82b1e886c689256ed208caed.jpg?s=120&d=mm&r=g)
Sandy Drobic schrieb:
Ralf Prengel wrote:
CLI=$(which tw_cli) || exit 1 controller=$((find_controller)) number_of_drives=$(${CLI} /c${controller} show numdrives| cut -d"=" -f 2)
for ((i=0; i < $number_of_drives ; i+=1)) do temp=$(smartctl -a -d3ware,${i} /dev/twa0 | egrep '^194' | awk '{print $4}') echo "Temperatur Festplatte ${i}: $temp" done
Damit solltest du für deine Experimente einen Anfang haben.
Danke aber mein Problem ist es per script zu melden wenn ein Raid z.B. eine Platte "verloren" hat. Diese Infos liefert cli nur innerhalb seines Terminals und ich habe keine Idee wie ich die dann in eine Mail bekommen soll. Gruß -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/1cf53bbe68141b5c35a0b6ed309cf54b.jpg?s=120&d=mm&r=g)
Ralf Prengel, Dienstag 16 Juni 2009:
Danke aber mein Problem ist es per script zu melden wenn ein Raid z.B. eine Platte "verloren" hat. Diese Infos liefert cli nur innerhalb seines Terminals und ich habe keine Idee wie ich die dann in eine Mail bekommen soll.
Das kann der Controller Dir doch selbst mailen, das brauchst Du nicht skripten. Bei der Einrichtung jedenfalls werde ich immer gefragt, an welche Adresse Alerts gehen soll, und ich krieg die auch brav, wenn was passiert. -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/e2951fce8869bfe3ea27a01e0b73b3b8.jpg?s=120&d=mm&r=g)
-----Ursprüngliche Nachricht----- Von: Andre Tann [mailto:atann@alphasrv.net] Gesendet: Mittwoch, 17. Juni 2009 10:18 An: opensuse-de@opensuse.org Betreff: Re: 3ware per script auslesen und Resultat mailen
Ralf Prengel, Dienstag 16 Juni 2009:
Danke aber mein Problem ist es per script zu melden wenn ein Raid z.B. eine Platte "verloren" hat. Diese Infos liefert cli nur innerhalb seines Terminals und ich habe keine Idee wie ich die dann in eine Mail bekommen soll.
Das kann der Controller Dir doch selbst mailen, das brauchst Du nicht skripten.
Bei der Einrichtung jedenfalls werde ich immer gefragt, an welche Adresse Alerts gehen soll, und ich krieg die auch brav, wenn was passiert.
Soweit richtig aber wir brauchen mittelfristig ein bestimmtes Format der Ausgabe. Gruß i.A. Ralf Prengel Manager Customer Care Comline AG Hauert 8 D-44227 Dortmund/Germany Fon +49 231 97575 904 Fax +49 231 97575 257 Mobil +49 151 10831 157 EMail Ralf.Prengel@comline.de www.comline.de Vorstand Stephan Schilling, Erwin Leonhardi Aufsichtsrat Dr. Franz Schoser (Vorsitzender) HR Dortmund B 14570 USt.-ID-Nr. DE 124727422 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/b616838ebed8ad5a698e5ba205f7571a.jpg?s=120&d=mm&r=g)
Hi, 16.06.2009 15:28, Sandy Drobic wrote:
Ralf Prengel wrote:
Hallo,
es ist hier schon mal was dazu gemailt worden aber ich finde es nicht wieder. Wie kann ich einen 3ware-Controller per Script auslesen und das Resultat per Mail versenden? tw_cli öffnet ja eher ein Terminal in dem man Befehle absetzen kann.
Das geht auch scriptgesteuert. Hier ist ein Script, welches die Temperatur der Festplatten ausliest (bei mir läuft ein 9550:
function find_controller { result="1" c=0 while [ "$result" -ne "0" ] ; do echo "Teste $c..."
tw_cli /c${c} show > /dev/null 2>&1 result=$?
if [ "$result" -eq "0" ] ; then echo "Controller found in slot $c" else echo "no Controller in slot $c" c=$(($c + 1)) fi if [ "$c" -gt "10" ] ; then echo "no controller found on system" exit 1 fi done find_controller=$c }
CLI=$(which tw_cli) || exit 1 controller=$((find_controller)) number_of_drives=$(${CLI} /c${controller} show numdrives| cut -d"=" -f 2)
for ((i=0; i < $number_of_drives ; i+=1)) do temp=$(smartctl -a -d3ware,${i} /dev/twa0 | egrep '^194' | awk '{print $4}')
Uuh... das gibt Ärger mit David... grep und awk in einer Pipe...
echo "Temperatur Festplatte ${i}: $temp" done
Damit solltest du für deine Experimente einen Anfang haben.
Aber sonst eine nette Lösung den passenden Slot für tw_cli zu finden! Arno -- Arno Lehmann IT-Service Lehmann Sandstr. 6, 49080 Osnabrück www.its-lehmann.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/7fa600f34baf52463850bc9c2d2719fa.jpg?s=120&d=mm&r=g)
Arno Lehmann wrote:
for ((i=0; i < $number_of_drives ; i+=1)) do temp=$(smartctl -a -d3ware,${i} /dev/twa0 | egrep '^194' | awk '{print $4}')
Uuh... das gibt Ärger mit David... grep und awk in einer Pipe...
Grins! Völlig egal, das ist der Unterschied zwischen einem Perfektionist und einem Realist. Ich könnte etwas Zeit reinstecken und herausfinden, wie ich dies eleganter löse. Aber als Realist frage ich mich, ob die drei CPU-Zyklen zusätzlich den Aufwand wert sind. Meine Schlußfolgerung war, dass es hier den Aufwand nicht wert war, da dieses Script nur kurz läuft und der Ressourcenverbrauch gering ist. Früher hatte ich mehr Zeit, da konnte ich Stunden damit verbringen, ein Script sauber auszufeilen.
echo "Temperatur Festplatte ${i}: $temp" done
Damit solltest du für deine Experimente einen Anfang haben.
Aber sonst eine nette Lösung den passenden Slot für tw_cli zu finden!
Das war ein Vorläufer für ein Munin-Plugin, wenn ich mich recht erinnere. Deshalb brauchte ich die Suchfunktion. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@)drobic (.) de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/d8f80cfe82b1e886c689256ed208caed.jpg?s=120&d=mm&r=g)
Ralf Prengel schrieb:
Hallo,
es ist hier schon mal was dazu gemailt worden aber ich finde es nicht wieder. Wie kann ich einen 3ware-Controller per Script auslesen und das Resultat per Mail versenden? tw_cli öffnet ja eher ein Terminal in dem man Befehle absetzen kann.
Danke
./tw_cli -f /tmp/3ware_steuerung >> 3ware_status bring mich weiter in 3ware_steuerung steht der Befehl der ausgeführt werden soll. Gruß -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/7fa600f34baf52463850bc9c2d2719fa.jpg?s=120&d=mm&r=g)
Ralf Prengel wrote:
Ralf Prengel schrieb:
Hallo,
es ist hier schon mal was dazu gemailt worden aber ich finde es nicht wieder. Wie kann ich einen 3ware-Controller per Script auslesen und das Resultat per Mail versenden? tw_cli öffnet ja eher ein Terminal in dem man Befehle absetzen kann.
Danke
./tw_cli -f /tmp/3ware_steuerung >> 3ware_status bring mich weiter in 3ware_steuerung steht der Befehl der ausgeführt werden soll.
Jetzt erzähl doch mal, welcher Befehl nicht funktioniert und was für ein Modell du hast. Mit der richtigen Syntax kannst du alles herauskitzeln. Schau dir einfach mal die Ausgabe von "tw_cli /c0 show all" an. Du kannst auch direkt die einzelnen Ports ansteuern: "tw_cli /c0/p0 show status" (für die erste Festplatte). Du kannst Anzahl/Status der Platten/RAIDs/BBU direkt abfragen. Wo ist nun das Problem? -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@)drobic (.) de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/e2951fce8869bfe3ea27a01e0b73b3b8.jpg?s=120&d=mm&r=g)
Sandy Drobic schrieb:
Du kannst Anzahl/Status der Platten/RAIDs/BBU direkt abfragen. Wo ist nun das Problem?
Dieses Resultat brauchte ich als Ausgabe in einer Textdatei. //yoda> /c0 show Unit UnitType Status %RCmpl %V/I/M Stripe Size(GB) Cache AVrfy ------------------------------------------------------------------------------ u0 RAID-5 OK - - 64K 1396.95 ON OFF u1 RAID-5 INITIALIZING - 2 64K 4190.92 ON OFF Port Status Unit Size Blocks Serial --------------------------------------------------------------- p0 OK u0 465.76 GB 976773168 9QG31P29 p1 OK u0 465.76 GB 976773168 6QG0CHPQ p2 OK u0 465.76 GB 976773168 6QG0CJXC p3 OK u0 465.76 GB 976773168 6QG0CJYA p4 OK u1 1.36 TB 2930277168 S1Y6J1KS505940 p5 OK u1 1.36 TB 2930277168 S1Y6J1KS505941 p6 OK u1 1.36 TB 2930277168 S1Y6J1KS505943 p7 OK u1 1.36 TB 2930277168 S1Y6J1KS505942 packe ich /c0 show in eine Textdatei, rufe diese mit -f auf und leite das in eine zweite Datei um so habe ich genau das Resultat das ich brauche. Konkret geht es daraumdas dieses System nur zweimal im Monat nachts startet und der Admin per Mail so unwichtige Infos wie "eine Platte ist defekt" erhalten soll. Was du machst ist die Konfiguration zu ermitteln und mit anderen Tools dann die Infos auszulesen. ich haben nur das 3ware-Standardtool zur Verfügung. Gruß i.A. Ralf Prengel Manager Customer Care Comline AG Hauert 8 D-44227 Dortmund/Germany Fon +49 231 97575 904 Fax +49 231 97575 257 Mobil +49 151 10831 157 EMail Ralf.Prengel@comline.de www.comline.de Vorstand Stephan Schilling, Erwin Leonhardi Aufsichtsrat Dr. Franz Schoser (Vorsitzender) HR Dortmund B 14570 USt.-ID-Nr. DE 124727422 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
![](https://seccdn.libravatar.org/avatar/7fa600f34baf52463850bc9c2d2719fa.jpg?s=120&d=mm&r=g)
prengel wrote:
Sandy Drobic schrieb:
Du kannst Anzahl/Status der Platten/RAIDs/BBU direkt abfragen. Wo ist nun das Problem?
Dieses Resultat brauchte ich als Ausgabe in einer Textdatei.
//yoda> /c0 show
Unit UnitType Status %RCmpl %V/I/M Stripe Size(GB) Cache AVrfy ------------------------------------------------------------------------------
u0 RAID-5 OK - - 64K 1396.95 ON OFF u1 RAID-5 INITIALIZING - 2 64K 4190.92 ON OFF
Port Status Unit Size Blocks Serial --------------------------------------------------------------- p0 OK u0 465.76 GB 976773168 9QG31P29 p1 OK u0 465.76 GB 976773168 6QG0CHPQ p2 OK u0 465.76 GB 976773168 6QG0CJXC p3 OK u0 465.76 GB 976773168 6QG0CJYA p4 OK u1 1.36 TB 2930277168 S1Y6J1KS505940 p5 OK u1 1.36 TB 2930277168 S1Y6J1KS505941 p6 OK u1 1.36 TB 2930277168 S1Y6J1KS505943 p7 OK u1 1.36 TB 2930277168 S1Y6J1KS505942
packe ich /c0 show in eine Textdatei, rufe diese mit -f auf und leite das in eine zweite Datei um so habe ich genau das Resultat das ich brauche. Konkret geht es daraumdas dieses System nur zweimal im Monat nachts startet und der Admin per Mail so unwichtige Infos wie "eine Platte ist defekt" erhalten soll.
Was du machst ist die Konfiguration zu ermitteln und mit anderen Tools dann die Infos auszulesen. ich haben nur das 3ware-Standardtool zur Verfügung.
Eigentlich nicht: tw_cli /c0 show Unit UnitType Status %RCmpl %V/I/M Stripe Size(GB) Cache AVrfy ------------------------------------------------------------------------------ u0 RAID-5 OK - - 64K 2793.93 ON OFF Port Status Unit Size Blocks Serial --------------------------------------------------------------- p0 OK u0 698.63 GB 1465149168 9QK12N02 p1 OK u0 698.63 GB 1465149168 9QK12N45 p2 OK u0 698.63 GB 1465149168 9QK12MZ5 p3 OK u0 698.63 GB 1465149168 9QK12N0M p4 OK u0 698.63 GB 1465149168 9QK12MWE p5 NOT-PRESENT - - - - p6 NOT-PRESENT - - - - p7 NOT-PRESENT - - - - Name OnlineState BBUReady Status Volt Temp Hours LastCapTest --------------------------------------------------------------------------- bbu On Yes OK OK OK 255 17-Jun-2009 Dies kannst du natürlich auch in eine Textdatei leiten, oder eben direkt verarbeiten. Wenn du mehrere Maschinen hast, dann lohnt es sich vielleicht, die Konfigurationsermittlung in eine Funktion zu packen und die Konfig nicht für jeden Server hart verdrahtet im Script zu setzen. Ich empfehle übrigens unbedingt, eine BBU zu verwenden. Das Preis-/Leistungsverhältnis ist einfach zu gut. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@)drobic (.) de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (6)
-
Andre Tann
-
Arno Lehmann
-
prengel
-
Ralf Prengel
-
ralf.prengel@comline.de
-
Sandy Drobic