Mit smartctl hinter verschiedenen Controllern auslesen.

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von mrtank, 25.04.2013.

  1. #1 mrtank, 25.04.2013
    Zuletzt bearbeitet: 29.04.2013
    mrtank

    mrtank Grünschnabel

    Dabei seit:
    18.02.2013
    Beiträge:
    5
    Zustimmungen:
    0
    (Wieso habe ich hier eigentlich nicht "Hallo" gesagt?!?... sorry.. nachtrag folgt unten)

    Hallo miteinander..

    Ich möchte Daten, wie beispielsweise die Seriennummer einzelner HDDs mit "smartctl" auslesen und loggen.
    Die HDDs befinden sich aber hinter verschiedenen Controllern wie beispielsweise Megaraid bei einen IBMserver.

    Was ich bis jetzt gemacht habe funktioniert nur halbwegs:

    Die angeschlossenen HDDs habe ich mit
    Code:
    cat /proc/partitions | awk '{print $4}' | grep "sd"
    geholt und mit
    Code:
    > /tmp/logger
    gespeichert damit ich das bekomme:

    Code:
    "sda"
    "sdb"
    "sdc"
    "sde"
    weil ich es nich besser weiss habe ich nun die datei "/tmp/logger" mit sed bearbeitet.

    (für ibm server)
    Code:
    sed -i "s/^/smartctl -i -d megaraid,0 \/dev\//" /tmp/logger
    (für hp server)
    Code:
    sed -i "s/^/smartctl -i -d cciss,0 \/dev\//" /tmp/logger
    wenn ich jetzt die datei /tmp/logger ausführe, bekomme ich eine wunderbare auflistung der HDDs,
    was ich super finde, nur haben alle die Seriennummer der ersten HDD weil ich was nicht hinbekomme.

    Ich kann mir keinen reim darauf machen wie ich die zahl hinter "megaraid," oder "cciss," anpasse, da sich die ja auch ändert.

    Ist bestimmt totaler Kiki was ich da an Zeichen zusammengewürfelt habe, weiss es aber "NOCH" nicht besser :)

    Hat da einer eine Idee für mich?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 bytepool, 25.04.2013
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hej,

    mir ist nicht 100% klar was du genau erreichen willst, aber fangen wir mal vorne an:
    Deinen ersten Befehl solltest du durch
    Code:
    awk '/sd/{print $4}' /proc/partitions
    
    ersetzen koennen, das duerfte ein wenig effektiver sein.

    Was steht denn dort jetzt genau drin, und was haettest du dort gerne stehen? Wenn ich das richtig sehe steht dort jetzt:

    Code:
    smartctl -i -d megaraid,0 /dev/sda
    smartctl -i -d megaraid,0 /dev/sdb
    ...
    
    Und wenn ich dich richtig verstehe moechtest du die 0 durch die Zeilennummer - 1 ersetzen?

    Da gibt's wieder tausend Moeglichkeiten, wie waere es hiermit?
    Code:
    awk '{print "smartctl -i -d megaraid," NR-1 " /dev/" $1}' /tmp/logger
    

    MfG,
    bytepool
     
  4. #3 mrtank, 29.04.2013
    Zuletzt bearbeitet: 29.04.2013
    mrtank

    mrtank Grünschnabel

    Dabei seit:
    18.02.2013
    Beiträge:
    5
    Zustimmungen:
    0
    Erst mal danke und entschuldigung... erst komme ich hier mit meinem "Problem" und antworte dann nicht. Töchterlein hatte aber ne ganz dolle Papa-phase und hat mich nicht an den Rechner gelassen.

    So nu zum Thema:

    Deine Umsetzung werde ich nacher gleich mal ausprobieren, sieht jedenfalls professionell aus.

    Was ich eigendlich erreichen will ist, dass ich daten über alle HDDs auslesen kann und diese sollen nacher entweder direkt mit "| tee" oder einfach ">" in einer textdatei landen.
    Mein Problem ich dass ich den "megaraid" bei smartctl irgendwie nicht verstehe. Ich gebe ja nun mal am ende die "sda/sdb/was auch immer" an, muss dem megaraid aber noch eine zahl anhängen, welche so wie es scheint tatsächlich vortlaufend ist, je zeilennummer. Während megaraid anscheinend bei "1" anfängt habe ich bei cciss schon bei "0" eine gültige Seriennummer. Und dummerweise ist die Seriennummer das wichtigste an der Angelegenheit.

    Edit: Schlussendlich möchte ich damit kontrolle darüber erlangen ob die Server die ich verwalten darf andere Hardware bekommen.
    Auf den HDDs sind Daten die nicht für jederman zugänglich sein dürfen. So ein LOG soll mehrfach täglich abgelegt, und automatisch verglichen werden. Bei wechsel der HDDs bekomme ich somit einen "Alarm" und kann das dann mit den Antragsformularen vergleichen ob die HDD wirklich offiziell getauscht wird.
    Leider ist es dazu gekommen dass jemand meinte: HDD angeblich defekt, HDD raus, neue rein... daten behalten... dummes damit angestellt..

    smartctl soll also "nur" sämtliche relevanten daten (Hersteller, Serial und Grösse... was zu viel ist dachte ich, entferne ich mit "sed") aller HDDs auslesen und loggen.

    wenn ich nacher an die 3 Bastelrechner komme, probiere ich jedenfalls schon mal weiter.

    Edit: controller die verwendet werden arbeiten so:
    cciss (HP) die dann so dargestellt sind: cciss,X /dev/cciss/cXdX
    scsi (ibm - alt) so: scsi /dev/sgX
    megaraid (ibm - neuer) so: megaraid,X /dev/sda - sdb - sdc etc

    "X" ist dann immer eine zahl

    Jetzt brennt mir erst mal der Kopf, nachdem ich gemerkt habe dass noch ein controller mehr dazu kommt.
    Nun habe ich auf dem weg von der Idee zur Umsetzug total den Faden verloren..

    Aller herzlichsten Dank jedenfalls nochmal..

    <<Edith>> gibts denn hier keinen Bedank-Button?!?
     
  5. #4 schwedenmann, 29.04.2013
    schwedenmann

    schwedenmann Foren Gott

    Dabei seit:
    18.11.2003
    Beiträge:
    2.635
    Zustimmungen:
    2
    Ort:
    Wegberg
    Hallo

    Kannst du auf dem rechner (oder den rechnern) lshw installieren, dann kannst du mit lshw -class disk die Daten von HDD und DVD ausgeben lassen ud mit
    lshw -class disk | grep serial die Serienumer der Festplatte(e)

    mfg
    schwedenmann
     
  6. mrtank

    mrtank Grünschnabel

    Dabei seit:
    18.02.2013
    Beiträge:
    5
    Zustimmungen:
    0
    Danke für deinen Tip.
    Leider funktioniert das, genau wie "dmidecode" irgendwie nicht hinter einem controller.

    siehe:
    Code:
                  *-disk:0
                       description: SCSI Disk
                       physical id: 0.0.0
                       bus info: scsi@2:0.0.0
                       logical name: /dev/sda
                       size: 68GiB (73GB)
                       configuration: sectorsize=512
    
    was jetzt aber interessant ist ist das hier:
    Code:
    physical id: 0.0.0
    physical id: 0.1.0
    physical id: 0.2.0
    etc...
    
    wenn das mit dem controller übereinstimmt, dann könnte ich ja auslesen und hinter dieses "megaraid," oder "cciss," klemmen...

    PS: Ich haben 2 Monate zeit bekommen für mein "Projekt". Erst auf 3 Bastelrechnern und nacher darf dass dann auf die eigendlichen Kisten.

    Grüsse
     
Thema:

Mit smartctl hinter verschiedenen Controllern auslesen.

Die Seite wird geladen...

Mit smartctl hinter verschiedenen Controllern auslesen. - Ähnliche Themen

  1. Wie kann ich x Zeichen hinter einem bestimmten Wort ausgeben ?

    Wie kann ich x Zeichen hinter einem bestimmten Wort ausgeben ?: In mehreren Dateien ist immer mehrfach ein bestimmtes Wort enthalten, gefolgt von einem "=". Ich möchte mir die dahinter folgenden 10 Zeichen...
  2. Python Softwareentwickler (Hintergrundentwicklung und Datenanalyse)

    Python Softwareentwickler (Hintergrundentwicklung und Datenanalyse): Stelle : Software-Entwickler Anzahl : 3 Standort : Manila(Die Philippinen) Dezhong Investment LTD. Unser internationales...
  3. Frankreich sagt »Non« zu staatlich verordneten Hintertüren

    Frankreich sagt »Non« zu staatlich verordneten Hintertüren: In Frankreich hat die Regierung eine Gesetzesvorlage abgelehnt, die zum Ziel hatte, Hardwarehersteller zum Einbau von Backdoors in ihre Produkte...
  4. Hintergründe zum Konkurs von Mandriva

    Hintergründe zum Konkurs von Mandriva: Der französische Linux-Distributor Mandriva befindet sich, wie kürzlich berichtet, in Liquidation. Der letzte Geschäftsführer Jean-Manuel Croset...
  5. Ordnerinhalt als Textdatei - ls packt alles hintereinander

    Ordnerinhalt als Textdatei - ls packt alles hintereinander: Hallo, ich nutze Openelec (eine stark abgespeckte Linux-Version) auf meinem Mediacenter-PC. Um auch unterwegs einen Überblick über meine...