シェルスクリプトでシステム情報を取得(4)

ではHDDの情報を取得していきましょう。HDDの情報はsmartctlというコマンドを使います。使用しているOSによってはインストールしないといけないかもしれません。インストールするには

sudo apt update && sudo apt-get upgrade

でシステムを更新後、

sudo apt install -y smartmontools

で導入可能です。導入したら認識されているHDDを確認します。

sudo smartctl --scan

出力結果は

/dev/sda -d scsi # /dev/sda, SCSI device

となり、HDDが1台、/dev/sdaとして認識されていることがわかります。この情報をもとに/dev/sdaのSMART情報を出力するには

sudo smartctl -a /dev/sda

で以下出力結果が得られます。

smartctl 7.2 2020-12-30 r5155 [x86_64-linux-6.2.0-39-generic] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Blue Mobile
Device Model:     WDC WD
Serial Number:    WD-XXXXX
LU WWN Device Id: XXXX
Firmware Version: 01.01A01
User Capacity:    320,072,933,376 bytes [320 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Form Factor:      2.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Thu Dec 14 13:11:02 
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
・・・・・・

ここから必要な情報を抜き取ります。Device Model,Serial Number,User Capacityの3つを抜き取ることにします。それぞれgrepで抽出します。

smartctl -a /dev/sda | grep "Device Model"
smartctl -a /dev/sda | grep "Serial Number"
smartctl -a /dev/sda | grep "User Capacity"

それぞれを変数に入れたい場合は今までと同様です。

model=`smartctl -a /dev/sda | grep "Device Model"`
serial=`smartctl -a /dev/sda | grep "Serial Number"`
capacity=`smartctl -a /dev/sda | grep "User Capacity"`
echo $model
echo $serial
echo $capacity

なお、smartctlはgsmartcontrolをインストールすることでも使用可能となります。こちらは起動するとGUIでいろいろなHDD情報を見ることができます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です