Linuxでディスクのシリアル番号やモデル情報を取得する方法

この記事では、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`コマンドを使いこなせば、より高度なストレージ管理が可能になります。

created by Rinker
オライリージャパン
¥3,080 (2024/05/16 22:00:03時点 Amazon調べ-詳細)

コメント

コメントする

目次