このコンテンツは、機械翻訳で翻訳されています。機械翻訳の免責条項をご覧ください。
英語に切り替える

How do I export hard disk and enclosure information from my NAS using a script?
スクリプトを使用して、NAS からハードディスクとエンクロージャの情報をエクスポートするにはどうすればよいですか?


最終更新日: 2025-09-17

対象製品

NAS (QTS / QuTS hero)


シナリオ

QNAP NAS を拡張ユニットと一緒に使用する場合、ドキュメントや在庫管理のために、インストールされているすべてのハードドライブの詳細情報(ブランド、モデル、シリアル番号など)をエクスポートしたいことがあります。この情報はグラフィカルインターフェースに表示されますが、上級ユーザーは SSH 経由でコマンドラインを使用してこれらのディスク詳細を取得およびエクスポートできます。これは、自動化や IT 資産の在庫を取るのに役立ちます。 


手順

  1. QNAP NAS で SSH アクセスを有効にする
    注意: SSH を有効にするとセキュリティリスクが発生する可能性があります。強力なパスワードを使用し、使用しないときは SSH を無効にしてください。
  2. SSH 経由で NAS に接続するSSH クライアント(PuTTY や Terminal など)を使用して。
  3. 提供されたhdd_id.shスクリプトを使用してディスク情報をエクスポートする:
    • スクリプトをダウンロードまたは作成する:次の内容を保存するhdd_id.shNAS で:
      !/bin/sh  使用方法:    ./hdd_id.sh                すべてのエンクロージャ、タブ区切り (標準出力)    ./hdd_id.sh --csv          すべてのエンクロージャ、--DiskList.csv に書き込み    ./hdd_id.sh 1              enc_id= 1 のみ、タブ区切り    ./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— すべてのエンクロージャを一覧表示し、CSV ファイルに出力します。<host>-<yyyymmdd>-DiskList.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 を使用して。



さらに読む

この記事は役に立ちましたか?

ご意見をいただき、ありがとうございます。

この記事の改善箇所をお知らせください。

その他のフィードバックがある場合は、以下に入力してください。

仕様を選択

      もっと見る 閉じる

      当ページを他の国/地域で見る:

      気軽にお問い合わせ! show inquiry button
      open menu
      back to top