Jak exportuji informace o pevném disku a krytu z mého NAS pomocí skriptu?
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
- 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. - Připojte se k vašemu NAS prostřednictvím SSH pomocí SSH klienta (například PuTTY nebo Terminal).
- Použijte poskytnutý
hdd_id.shskript k exportu informací o disku:- Stáhněte nebo vytvořte skript: Uložte následující obsah jako
hdd_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.
- Stáhněte nebo vytvořte skript: Uložte následující obsah jako