hdparmを使ってHDDのModel Numver、Serial Numberを取得

シェルスクリプト上でHDDのモデルナンバー、シリアルナンバーを使いたい時にそれを取得するコマンドがあればと思って調べてみました。hdparmの-Iオプションを使えば実現できそうです。

# hdparm -I /dev/sda
/dev/sda:

ATA device, with non-removable media
        Model Number:       TOSHIBA MK5065GSX
        Serial Number:      XXXXXXXX
        Firmware Revision:  XXXXXX
        Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6
Standards:
        Supported: 8 7 6 5
        Likely used: 8
Configuration:
(以下略)

この結果をawkで料理してやればモデルナンバーやシリアルナンバーのみ取得できます。

# hdparm -I /dev/sda | grep 'Model Number' | awk '{for(i=3;i<NF;i++){printf("%s ",$i)}print $NF}' | sed -e "s/\s\+/_/g"
TOSHIBA_MK5065GSX

# hdparm -I /dev/sda | grep 'Serial Number' | awk '{for(i=3;i<NF;i++){printf("%s ",$i)}print $NF}' | sed -e "s/\s\+/_/g"
XXXXXXX

空白があると何かと面倒なのでアンダーバーに置き換える処理も入れてあります。

参考URL

Linux: Find out serial / model number and vendor information for SATA and IDE hard disk
http://www.cyberciti.biz/faq/linux-getting-scsi-ide-harddisk-information/

awkで指定したカラム以降を表示する
http://www.dollpaper.com/info/257.html

sed 連続 (空白|スペース) 置換
http://hoooooooover.blogspot.jp/2007/10/sed.html

コメントを残す