Dieser Inhalt ist maschinell übersetzt. Bitte beachten Sie den Haftungsausschluss für maschinelle Übersetzung.
Umschalten auf Englisch

How do I export hard disk and enclosure information from my NAS using a script?
Wie exportiere ich Informationen über Festplatten und Gehäuse von meinem NAS mithilfe eines Skripts?


Zuletzt geändertes Datum 2025-09-17

Anwendbare Produkte

NAS (QTS / QuTS hero)


Szenario

Wenn Sie ein QNAP NAS mit einer Erweiterungseinheit verwenden, möchten Sie möglicherweise detaillierte Informationen über alle installierten Festplatten—wie Marke, Modell und Seriennummer—für Dokumentation oder Inventarisierung exportieren. Obwohl diese Informationen in der grafischen Oberfläche erscheinen, können fortgeschrittene Benutzer diese Festplattendetails über die Kommandozeile via SSH abrufen und exportieren. Dies ist hilfreich für die Automatisierung oder zur Inventarisierung Ihrer IT-Assets. 


Verfahren

  1. SSH-Zugriff aktivieren auf Ihrem QNAP NAS.
    Hinweis: Das Aktivieren von SSH kann Sicherheitsrisiken mit sich bringen. Stellen Sie sicher, dass Sie starke Passwörter verwenden und deaktivieren Sie SSH, wenn es nicht verwendet wird.
  2. Verbinden Sie sich über SSH mit Ihrem NASunter Verwendung eines SSH-Clients (wie PuTTY oder Terminal).
  3. Verwenden Sie das bereitgestelltehdd_id.shSkript, um Festplatteninformationen zu exportieren:
    • Laden Sie das Skript herunter oder erstellen Sie es:Speichern Sie den folgenden Inhalt alshdd_id.shauf Ihrem NAS:
      #!/bin/sh
      # Verwendung:
         ./hdd_id.sh                alle Gehäuse, tab-getrennt (zu stdout)
         ./hdd_id.sh --csv          alle Gehäuse, schreiben zu --DiskList.csv
         ./hdd_id.sh 1              nur enc_id=1, tab-getrennt
         ./hdd_id.sh --csv 1        nur enc_id=1, schreiben zu --DiskList.csv
      
      CSV=0
      if [ "$1" = "--csv" ]; then
        CSV=1
        shift
      fi
      
      if [ -n "$1" ]; then
        ENC_LIST="$1"
      else
        ENC_LIST=$(hal_app --se_enum 2>/dev/null | awk '
          /^=/{next}
          NF==0{next}
          /(^|[[:space:]])enc_id($|[[:space:]])/ { hdr=1; next }
          hdr && $1 ~ /^[0-9]+$/ { print $1 }
        ' | sort -n | uniq)
      fi
      
      [ -z "$ENC_LIST" ] && { echo "Kein Gehäuse enc_id gefunden."; exit 1; }
      
      OUTFILE=""
      DELIM="\t"
      if [ $CSV -eq 1 ]; then
        HOSTNAME=$(uname -n 2>/dev/null)
        [ -z "$HOSTNAME" ] && HOSTNAME="NAS"
        DATESTR=$(date +%Y%m%d)
        OUTFILE="${HOSTNAME}-${DATESTR}-DiskList.csv"
        DELIM="," 
        echo "Gehäuse,Slot,Marke,Modell,Seriennummer" > "$OUTFILE"
      fi
      
      for ENC in $ENC_LIST; do
        NAME=$(hal_app --se_get_jbod_display_name enc_id=$ENC 2>/dev/null)
        [ -z "$NAME" ] && NAME="ENC_${ENC}"
      
        hal_app --pd_enum enc_id=$ENC 2>/dev/null | awk -v name="$NAME" -v D="$DELIM" -v csv="$CSV" -v out="$OUTFILE" '
          /^=/{next}
          NF==0{next}
          !hdr && /(^|[[:space:]])port_id($|[[:space:]])/ && /vendor/ && /model/ && /serial_no/ {
            for(i=1;i<=NF;i++){
              if($i=="port_id")    pid=i
              if($i=="vendor")     bid=i
              if($i=="model")      mid=i
              if($i=="serial_no")  sid=i
            }
            hdr=1; next
          }
          hdr && $1 ~ /^[0-9]+$/ && pid>0 && bid>0 && mid>0 && sid>0 {
            line = name D $(pid) D $(bid) D $(mid) D $(sid)
            if (csv==1) {
              print line >> out
            } else {
              print line
            }
          }
        '
      done
    • Machen Sie das Skript ausführbar:
      chmod +x hdd_id.sh
    • Führen Sie das Skript nach Bedarf aus:
      • ./hdd_id.sh— Listet alle Gehäuse auf, gibt tabulatorgetrennte Daten im Terminal aus.
      • ./hdd_id.sh --csv— Listet alle Gehäuse auf, gibt in eine CSV-Datei aus, die<HOST>-<YYYYMMDD>-DiskList.csv heißt.
      • ./hdd_id.sh 1— Listet nur das Gehäuse mitenc_id=1, tabulatorgetrennt.
      • ./hdd_id.sh --csv 1— Listet nur das Gehäuseenc_id=1, gibt in CSV aus.
    • Beispielausgabe:
      ENC_03TOSHIBAMC04ACA300E85G9XXXXFLVA
      ENC_06SeagateST8000VX010-2ZR188WPV0XYZZ
      ENC_07SeagateST8000VX010-2ZR188WPV0ZZZZ
      ENC_08SeagateST8000VX010-2ZR188WPVXXXR5
      TR-004-N0011SeagateST4000NE001-2MA101WS24ZZZB
      TR-004-N0012SeagateST4000NE001-2MA101WS24XXXY

      Jede Zeile enthält:Gehäusename,Slot,Marke,Modell,Seriennummer.

    • Laden Sie die exportierte Datei herunter(wenn Sie--csv) von Ihrem NAS mit File Station oder SMB/CIFS.



Weiterführende Literatur

War dieser Artikel hilfreich?

Vielen Dank für Ihre Rückmeldung.

Bitte teilen Sie uns mit, wie dieser Artikel verbessert werden kann:

Wenn Sie zusätzliches Feedback geben möchten, fügen Sie es bitte unten ein.

Wählen Sie die Spezifikation

      Mehr anzeigen Weniger

      Diese Seite in anderen Ländern / Regionen:

      open menu
      back to top