此頁面為機器翻譯版本,請參閱機器翻譯免責聲明。
切換為English
如何使用指令碼從我的 NAS 匯出硬碟和外接盒資訊?
最後修訂日期:
2025-09-17
適用產品
NAS (QTS / QuTS hero)
情境
如果您使用的 QNAP NAS 配有擴充單元,您可能會想要匯出所有已安裝硬碟的詳細資訊,例如品牌、型號和序號,以便記錄或盤點。雖然這些資訊會顯示在圖形介面中,但進階使用者可以透過 SSH 使用命令列擷取並匯出這些磁碟詳細資訊。這對於自動化或盤點 IT 資產非常有幫助。
程式
- 在您的 QNAP NAS 上啟用 SSH 存取。
注意:啟用 SSH 可能會帶來安全風險。請確保使用強密碼,並在不使用時停用 SSH。 - 透過 SSH 連線至您的 NAS使用 SSH 客戶端(例如 PuTTY 或 Terminal)。
- 使用提供的
hdd_id.sh指令碼來匯出磁碟資訊:- 下載或建立指令碼:將以下內容儲存為
hdd_id.sh在您的 NAS 上:!/bin/sh 用法: ./hdd_id.sh 所有機箱,使用 tab 分隔(輸出到 stdout) ./hdd_id.sh --csv 所有機箱,寫入
- -DiskList.csv ./hdd_id.sh 1 僅 enc_id=1,使用 tab 分隔 ./hdd_id.sh --csv 1 僅 enc_id=1,寫入 - -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 "未找到機箱 enc_id。"; 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"Enclosure,Slot,Brand,Model,Serial">"$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 - 使指令碼可執行:
chmod +x hdd_id.sh
- 根據需要執行指令碼:
./hdd_id.sh— 列出所有機箱,將以標籤分隔的資料輸出到終端。./hdd_id.sh --csv— 列出所有機箱,輸出到名為<host>-<yyyymmdd>-DiskList.csv 的 CSV 檔案。./hdd_id.sh 1— 只列出機箱enc_id=1,以標籤分隔。./hdd_id.sh --csv 1— 只列出機箱enc_id=1,輸出到 CSV。
- 範例輸出:
ENC_03TOSHIBAMC04ACA300E85G9XXXXFLVA ENC_06SeagateST8000VX010-2ZR188WPV0XYZZ ENC_07SeagateST8000VX010-2ZR188WPV0ZZZZ ENC_08SeagateST8000VX010-2ZR188WPVXXXR5 TR-004-N0011SeagateST4000NE001-2MA101WS24ZZZB TR-004-N0012SeagateST4000NE001-2MA101WS24XXXY
每行包含:機箱名稱,插槽,品牌,型號,序號。
- 下載匯出的檔案(如果使用
--csv)從您的 NAS 使用 File Station 或 SMB/CIFS。
- 下載或建立指令碼:將以下內容儲存為