Det här innehållet är maskinöversatt. Vi hänvisar till Ansvarsfriskrivning angående maskinöversättning.
Växla till engelska

How do I export hard disk and enclosure information from my NAS using a script?
Hur exporterar jag information om hårddisk och hölje från min NAS med hjälp av ett skript?


Senaste ändringsdatum: 2025-09-17

Tillämpliga produkter

NAS (QTS / QuTS hero)


Scenario

Om du använder en QNAP NAS med en expansionsenhet kan du vilja exportera detaljerad information om alla installerade hårddiskar—såsom märke, modell och serienummer—för dokumentation eller inventering. Även om denna information visas i det grafiska gränssnittet kan avancerade användare hämta och exportera dessa diskdetaljer med hjälp av kommandoraden via SSH. Detta är användbart för automatisering eller för att inventera dina IT-tillgångar. 


Procedur

  1. Aktivera SSH-åtkomst på din QNAP NAS.
    Obs: Att aktivera SSH kan medföra säkerhetsrisker. Se till att använda starka lösenord och inaktivera SSH när det inte används.
  2. Anslut till din NAS via SSH med en SSH-klient (t.ex. PuTTY eller Terminal).
  3. Använd den tillhandahållnahdd_id.shskriptet för att exportera diskinformation:
    • Ladda ner eller skapa skriptet: Spara följande innehåll somhdd_id.shpå din NAS:
      #!/bin/sh
      # Användning:
         ./hdd_id.sh                alla kapslingar, tab-separerade (till stdout)
         ./hdd_id.sh --csv          alla kapslingar, skriv till --DiskList.csv
         ./hdd_id.sh 1              endast enc_id=1, tab-separerade
         ./hdd_id.sh --csv 1        endast enc_id=1, skriv till --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 "Ingen kapsling enc_id hittades."; 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 "Kapsling,Slot,Märke,Modell,Serienummer" > "$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
    • Gör skriptet körbart:
      chmod +x hdd_id.sh
    • Kör skriptet vid behov:
      • ./hdd_id.sh— Listar alla kapslingar, skriver ut tab-separerad data till terminalen.
      • ./hdd_id.sh --csv— Listar alla kapslingar, skriver ut till en CSV-fil med namnet<HOST>-<YYYYMMDD>-DiskList.csv.
      • ./hdd_id.sh 1— Listar endast kapsling medenc_id=1, tab-separerad.
      • ./hdd_id.sh --csv 1— Listar endast kapslingenc_id=1, skriver ut till CSV.
    • Exempel på utdata:
      ENC_03TOSHIBAMC04ACA300E85G9XXXXFLVA
      ENC_06SeagateST8000VX010-2ZR188WPV0XYZZ
      ENC_07SeagateST8000VX010-2ZR188WPV0ZZZZ
      ENC_08SeagateST8000VX010-2ZR188WPVXXXR5
      TR-004-N0011SeagateST4000NE001-2MA101WS24ZZZB
      TR-004-N0012SeagateST4000NE001-2MA101WS24XXXY

      Varje rad innehåller: Kapslingsnamn,Fack,Märke,Modell,Serienummer.

    • Ladda ner den exporterade filen (om du använder--csv) från din NAS med File Station eller SMB/CIFS.



Vidare läsning

Var den här artikeln till hjälp?

Tack för din feedback.

Berätta för oss hur vi kan förbättra artikeln:

Ge oss fler synpunkter genom att skriva dem nedan.

Välj specifikation

      Visa fler Färre

      Denna webbplats i andra länder/regioner:

      open menu
      back to top