この記事では、Linux環境においてディスクのシリアル番号やモデル情報を取得する方法について詳しく解説します。この作業は、ストレージ管理やトラブルシューティングで非常に役立ちます。具体的なコード例、その詳細解説、さらに応用例も5個以上紹介します。
目次
基本的な情報の取得方法
Linuxにはいくつかのコマンドラインツールが用意されていますが、今回は主に`lsblk`と`smartctl`コマンドを使用します。
lsblkコマンド
`lsblk`コマンドは、ブロックデバイス(ディスクやパーティションなど)のリストを表示します。
lsblk
smartctlコマンド
`smartctl`は、SMART(Self-Monitoring, Analysis, and Reporting Technology)情報を取得するためのコマンドです。
sudo smartctl -a /dev/sda # /dev/sdaはディスクを示すデバイスファイルです
詳細な情報の取得
ディスクのシリアル番号の取得
`smartctl`コマンドを使ってディスクのシリアル番号を確認する方法は以下の通りです。
sudo smartctl -i /dev/sda | grep "Serial Number"
ディスクのモデル情報の取得
モデル情報も`smartctl`で簡単に取得できます。
sudo smartctl -i /dev/sda | grep "Device Model"
応用例
1. 特定のディスクを自動識別
以下のスクリプトは、特定のシリアル番号を持つディスクを自動で識別します。
#!/bin/bash
target_serial="TARGET_SERIAL_NUMBER"
for disk in /dev/sd?; do
serial=$(sudo smartctl -i $disk | grep "Serial Number" | awk '{print $3}')
if [ "$serial" == "$target_serial" ]; then
echo "Target disk is $disk"
fi
done
2. すべてのディスクのシリアル番号を一覧表示
#!/bin/bash
for disk in /dev/sd?; do
serial=$(sudo smartctl -i $disk | grep "Serial Number" | awk '{print $3}')
echo "$disk has serial $serial"
done
3. 特定の条件に合致するディスクを警告
#!/bin/bash
warning_model="WARNING_MODEL"
for disk in /dev/sd?; do
model=$(sudo smartctl -i $disk | grep "Device Model" | awk '{print $3}')
if [ "$model" == "$warning_model" ]; then
echo "Warning! $disk is $warning_model"
fi
done
4. ディスクの健康状態をチェック
#!/bin/bash
for disk in /dev/sd?; do
health=$(sudo smartctl -H $disk | grep "PASSED")
if [ -z "$health" ]; then
echo "$disk is not healthy!"
else
echo "$disk is healthy."
fi
done
5. ディスクの使用時間を確認
#!/bin/bash
for disk in /dev/sd?; do
time=$(sudo smartctl -A $disk | grep "Power_On_Hours" | awk '{print $10}')
echo "$disk has been powered on for $time hours."
done
まとめ
Linuxにおいて、ディスクのシリアル番号やモデル情報を取得することは、多くの場面で非常に役立つ情報です。`lsblk`や`smartctl`コマンドを使いこなせば、より高度なストレージ管理が可能になります。
コメント