Tento obsah je přeložen strojově. Informace najdete na stránce Odmítnutí odpovědnosti za strojový překlad.
Přepnout do angličtiny

How do I export hard disk and enclosure information from my NAS using a script?
Jak exportuji informace o pevném disku a krytu z mého NAS pomocí skriptu?


Datum poslední úpravy: 2025-09-17

Platné produkty

NAS (QTS / QuTS hero)


Scénář

Pokud používáte QNAP NAS s rozšiřující jednotkou, možná budete chtít exportovat podrobné informace o všech nainstalovaných pevných discích—jako je značka, model a sériové číslo—pro dokumentaci nebo inventarizaci. Ačkoli se tyto informace zobrazují v grafickém rozhraní, pokročilí uživatelé mohou tyto podrobnosti o discích získat a exportovat pomocí příkazového řádku přes SSH. To je užitečné pro automatizaci nebo inventarizaci vašich IT aktiv. 


Postup

  1. Povolte přístup SSH na vašem QNAP NAS.
    Poznámka: Povolení SSH může představovat bezpečnostní rizika. Ujistěte se, že používáte silná hesla a deaktivujte SSH, když není používáno.
  2. Připojte se k vašemu NAS prostřednictvím SSH pomocí SSH klienta (například PuTTY nebo Terminal).
  3. Použijte poskytnutýhdd_id.shskript k exportu informací o disku:
    • Stáhněte nebo vytvořte skript: Uložte následující obsah jakohdd_id.shna vašem NAS:
      #!/bin/sh
      # Použití:
         ./hdd_id.sh                všechna pouzdra, tabulátor oddělený (na stdout)
         ./hdd_id.sh --csv          všechna pouzdra, zapisovat do --DiskList.csv
         ./hdd_id.sh 1              pouze enc_id=1, tabulátor oddělený
         ./hdd_id.sh --csv 1        pouze enc_id=1, zapisovat do --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 "Žádné enc_id pouzdra nebylo nalezeno."; 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 "Pouzdro,Slot,Značka,Model,Sériové číslo" > "$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
    • Udělejte skript spustitelným:
      chmod +x hdd_id.sh
    • Spusťte skript podle potřeby:
      • ./hdd_id.sh— Vypíše všechny jednotky, výstup je tabulkově oddělený na terminálu.
      • ./hdd_id.sh --csv— Vypíše všechny jednotky, výstup do CSV souboru s názvem<HOST>-<YYYYMMDD>-DiskList.csv.
      • ./hdd_id.sh 1— Vypíše pouze jednotku senc_id=1, tabulkově oddělený.
      • ./hdd_id.sh --csv 1— Vypíše pouze jednotkuenc_id=1, výstup do CSV.
    • Příklad výstupu:
      ENC_03TOSHIBAMC04ACA300E85G9XXXXFLVA
      ENC_06SeagateST8000VX010-2ZR188WPV0XYZZ
      ENC_07SeagateST8000VX010-2ZR188WPV0ZZZZ
      ENC_08SeagateST8000VX010-2ZR188WPVXXXR5
      TR-004-N0011SeagateST4000NE001-2MA101WS24ZZZB
      TR-004-N0012SeagateST4000NE001-2MA101WS24XXXY

      Každý řádek obsahuje: Název jednotky,Slot,Značka,Model,Sériové číslo.

    • Stáhněte exportovaný soubor (pokud používáte--csv) z vašeho NAS pomocí File Station nebo SMB/CIFS.



Další čtení

Byl tento článek užitečný?

Děkujeme vám za vaši zpětnou vazbu.

Sdělte nám prosím, jak lze tento článek vylepšit:

Pokud chcete poskytnout další zpětnou vazbu, uveďte ji níže.

Zvolte specifikaci

      Zobrazit více Zobrazit méně

      Tato stránka v jiných zemích / oblastech:

      open menu
      back to top