シェルスクリプト上で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