Bu içerik makine çevirisidir. Lütfen Makine Çevirisi Sorumluluk Reddi metnine bakın.
İngilizce'ye geç

How do I export hard disk and enclosure information from my NAS using a script?
NAS'ımdan bir script kullanarak hard disk ve muhafaza bilgilerini nasıl dışa aktarırım?


Last modified date: 2025-09-17

Geçerli Ürünler

NAS (QTS / QuTS hero)


Senaryo

Bir genişletme birimi ile birlikte bir QNAP NAS kullanıyorsanız, belgeler veya envanter için markası, modeli ve seri numarası gibi tüm yüklü sabit disklerin ayrıntılı bilgilerini dışa aktarmak isteyebilirsiniz. Bu bilgiler grafik arayüzde görünse de, ileri düzey kullanıcılar SSH üzerinden komut satırını kullanarak bu disk ayrıntılarını alabilir ve dışa aktarabilir. Bu, otomasyon veya BT varlıklarınızın envanterini almak için faydalıdır. 


Prosedür

  1. QNAP NAS'ınızda SSH erişimini etkinleştirin.
    Not: SSH'yi etkinleştirmek güvenlik riskleri oluşturabilir. Güçlü parolalar kullandığınızdan emin olun ve kullanılmadığında SSH'yi devre dışı bırakın.
  2. NAS'ınıza SSH üzerinden bağlanınbir SSH istemcisi (örneğin PuTTY veya Terminal) kullanarak.
  3. Sağlananhdd_id.shdisk bilgilerini dışa aktarmak için betiği kullanın:
    • Betik indirin veya oluşturun:Aşağıdaki içeriği olarak kaydedinhdd_id.shNAS'ınızda:
      #!/bin/sh
      # Kullanım:
         ./hdd_id.sh                tüm kasalar, tab ile ayrılmış (stdout'a)
         ./hdd_id.sh --csv          tüm kasalar, --DiskList.csv dosyasına yaz
         ./hdd_id.sh 1              sadece enc_id=1, tab ile ayrılmış
         ./hdd_id.sh --csv 1        sadece enc_id=1, --DiskList.csv dosyasına yaz
      
      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 "Kasa enc_id bulunamadı."; 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 "Kasa,Yuva,Marka,Model,Seri" > "$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
    • Betiği çalıştırılabilir yapın:
      chmod +x hdd_id.sh
    • Gerektiği şekilde scripti çalıştırın:
      • ./hdd_id.sh— Tüm kabinleri listeler, sekmeyle ayrılmış verileri terminale çıktılar.
      • ./hdd_id.sh --csv— Tüm kabinleri listeler, adında bir CSV dosyasına çıktılar<HOST>-<YYYYMMDD>-DiskList.csv.
      • ./hdd_id.sh 1— Sadece şu kabini listelerenc_id=1, sekmeyle ayrılmış.
      • ./hdd_id.sh --csv 1— Sadece şu kabini listelerenc_id=1, CSV'ye çıktılar.
    • Örnek çıktı:
      ENC_03TOSHIBAMC04ACA300E85G9XXXXFLVA
      ENC_06SeagateST8000VX010-2ZR188WPV0XYZZ
      ENC_07SeagateST8000VX010-2ZR188WPV0ZZZZ
      ENC_08SeagateST8000VX010-2ZR188WPVXXXR5
      TR-004-N0011SeagateST4000NE001-2MA101WS24ZZZB
      TR-004-N0012SeagateST4000NE001-2MA101WS24XXXY

      Her satır şunları içerir:Kabin Adı,Yuva,Marka,Model,Seri.

    • Dışa aktarılan dosyayı indirin(eğer kullanıyorsanız--csv) NAS'ınızdan File Station veya SMB/CIFS kullanarak.



Daha fazla okuma

Was this article helpful?

Thank you for your feedback.

Please tell us how this article can be improved:

If you want to provide additional feedback, please include it below.

Teknik Özellik sSçin

      Daha fazla göster Daha az

      Diğer ülkelerde/bölgelerde bu site:

      open menu
      back to top