シェルスクリプトでシステム情報を取得(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情報を見ることができます。