S.M.A.R.T - Wert in Datei schreiben lassen

Lizman

Ensign
Registriert
Aug. 2008
Beiträge
235
Moin Moin.

Ich möcht mir gerne die aktuellen S.M.A.R.T. Werte meiner 3 Platten in eine Datei schreiben lassen.
Soll wie folgt aussehen:

In der Datei soll der aktuelle Status von den Platten in jeweils einer Zeile stehen.
Da soll nur ein "Ok" oder ein "Fail" (oder ähnliches) drinne stehen.
Mehr brauch da nicht drinne stehen.
Wichtig wäre halt für jede Platte eine seperate Zeile.
Nun hab ich von Bash&Co keine Ahnung.

Vielleicht kann mir hier jemand auf die Sprünge helfen.
Hab schon viel gesucht, aber nichts gefunden.


(Die Datei wird dann wiederrum von einem anderen Programm alle paar Sekunden ausgelesen und verarbeitet.)

Daten:
Ubuntu 10.10
 
Sieh dir mal smartmontools an. Die Ausgabe kannst du dann ja einfach in eine Datei umbiegen.
 
:)
Ja smartmontools hab ich beim suchen auch schon entdeckt.
Nur gibt es mir ja einen haufen an Daten wieder?!
Oder kann ich mir quasi einen ganz knappen Status anzeigen lassen, wie "Ok" oder "Bad"?
 
Lizman schrieb:
Oder kann ich mir quasi einen ganz knappen Status anzeigen lassen, wie "Ok" oder "Bad"?
Ein Blick in die Hilfe verrät doch alles...
Code:
> smartctl -A /dev/sdd
smartctl 5.40 2010-09-08 r3148 [i686-pc-mingw32-win7(64)] (cf-win32-20100909)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   253   253   021    Pre-fail  Always       -       1841
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       164
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   095   095   000    Old_age   Always       -       3679
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       85
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       21
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       142
194 Temperature_Celsius     0x0022   122   109   000    Old_age   Always       -       28
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       0
Was dabei jetzt nun "Good" oder "Bad" ist, wirst du auch selbst sehen können. Oder einfach -H verwenden.
Code:
> smartctl -H /dev/sdd
smartctl 5.40 2010-09-08 r3148 [i686-pc-mingw32-win7(64)] (cf-win32-20100909)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
 
DAS Ergebniss hilft mir ja aber nicht weiter. ;)
Ich will ja nur einen einfachen Wert dargestellt haben, den ich zwischendurch immer im Blick habe (der sich quasi alle paar Sekunden aktualisiert).
Wenn dann ein "Bad" angezeigt wird, kann ich immer noch den genauen SMART Status anschauen.

Dient nur der groben Überwachung.
Und dafür ist die Ausgabe einfach too much.


Als Beispiel gibt es ja unter Menü->Administration->Disk Utility auch einen einfachen Status wie "Ok" oder "Bad".
Das möcht ich halt in einer Datei stehen haben.
Für jede Platte eine Zeile.
Mehr darf da auch nicht drinne stehen. :)
Das Ergebniss wird mir quasi dann extern angezeigt wo ich es immer im Blickfeld habe.
 
Dann benutzt du einfach noch grep um den entsprechenden Wert zu erhalten.

Code:
smartctl -H /dev/hda | grep overall-healt >>datei.txt
...oder was auch immer du auslesen willst, zB die Temperatur
Code:
smartctl -A /dev/sda | grep Temperature
natürlich kannst du das dann auch in eine Datei umlenken.



Du kannst dir ja auch eine Mail schicken lassen, wenn ein Fehler auftritt.
 
Zuletzt bearbeitet:
Hm ist mir immer noch zuviel! :D
Wie ermittelt den Ubuntu/Linux diesen Wert in dem oben genannten Programm?
Steht das vielleicht sogar in einer Datei?
(In den Proc-Files wie zb. Diskstats hab ich nichts gefunden.


Die Mail-Lösung wäre meine Notlösung, wenn das gar nicht hinhaut wie ich mir das dachte.
Alternativ dazu wäre eine SMS-Lösung noch besser, da weiß ich aber just gar nicht ob das Möglich ist...
Mails schau ich halt nicht so oft nach. ;)
 
Ganz einfach mit smartmontools und dem üblichen Boardwerkzeug, den Pipes, grep und awk:
Code:
smartctl -H /dev/ada0 | grep overall-healt | awk '{print $6}'
Bei mir ist die SSD mit dem System drauf das Device /dev/ada0
das muss natürlich angepasst werden mit dem eigenen Device das man überwachen möchte.
Soll der Wert in eine Datei geschrieben werden, dann zum Beispiel so:
Code:
smartctl -H /dev/ada0 | grep overall-healt | awk '{print $6}' > SMART_TEST.nfo
Wenn alles so läuft wie es soll, dann sollte es PASSED sein.
 
Lizman schrieb:
Hm ist mir immer noch zuviel! :D
Wie ermittelt den Ubuntu/Linux diesen Wert in dem oben genannten Programm?
Steht das vielleicht sogar in einer Datei?
(In den Proc-Files wie zb. Diskstats hab ich nichts gefunden.


Die Mail-Lösung wäre meine Notlösung, wenn das gar nicht hinhaut wie ich mir das dachte.
Alternativ dazu wäre eine SMS-Lösung noch besser, da weiß ich aber just gar nicht ob das Möglich ist...
Mails schau ich halt nicht so oft nach. ;)

smartmontools ermittelt diese werte über ata commands an die entsprechenden laufwerke. es gibt keine entsprechende datei im proc-dateisystem oder sonst irgendwo.
 
Genau.

Mit den smartmontool kommt der smartd. Der kann die regelmäßige Abfrage der Platten machen und die Ergebnisse auswerten. Ihm kannst sagen, in welchen Fällen er sich wie bei dir melden melden soll. Für SMS läßt du Mails an ein SMS-Gateway schicken. Ich habe den Eindruck, du willst genau dieses Rad nochmal neu erfinden.

Lies mal "man smartd" und "man smartd.conf".
 
Entschuldigt das ich mich einmische, und gleich hier anhacke, aber ich denke es passt hier besser.

Dar man ein und das selbe Device in zwei Zeilen angeben? Ich hab einmal die Konfig für halbstündliches Checken der Temperatur und einmal eines das mir Shorttests von MO-SA machen lässt am Abend, und SO ein Longtest.

Danke im Vorraus,
jo
 

Ähnliche Themen

Zurück
Oben