SSブログ

/proc/mdstatのデバイス名でのソート [Linux]

MD device のステータスの確認のために、/proc/mdstat を参照している。
しかし、/proc/mdstat はデバイス名でソートされておらず、少々見づらい。
このため、/proc/mdstat をデバイス名でソートするスクリプトを作成した。
詳細は、以下の通りである。

1. スクリプト (mdstat)
#!/bin/sh
#
# Get status of MD devices sorted by device name.
# usage: mdstat
#
# - MD is an abbreviation for "multiple device".
# - The most common use case is commonly known as "Software RAID".
#

export LC_ALL=C

# sort status of MD devices by device path
sort_md_status() {
    local info=$1
    local first_line last_line md_dev
    local i

    # get first line, last line, list of MD device
    first_line=`echo "$info" | sed -n 1p`
    last_line=`echo "$info" | sed -n \\$p`
    md_dev=`echo "$info" | grep '^md[0-9]\+ :' | sed 's/ :.*//' | sort -n`

    # sort data by device path
    echo "$first_line"
    for i in $md_dev; do
        echo "$info" | grep -A2 $i
    done
    echo "$last_line"
}

sort_md_status "`cat /proc/mdstat`"
exit $?

2. 使用方法
% mdstat

3. 実行例
% mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] \
[raid10] 
md0 : active raid1 sda5[0] sdb5[1]
      20971456 blocks [2/2] [UU]
      
md1 : active raid1 sda6[0] sdb6[1]
      20971456 blocks [2/2] [UU]
      
md2 : active raid1 sda7[0] sdb7[1]
      204736 blocks [2/2] [UU]
      
md3 : active raid1 sda8[0] sdb8[1]
      204736 blocks [2/2] [UU]
      
md4 : active raid1 sda9[0] sdb9[1]
      41942976 blocks [2/2] [UU]
      
md5 : active raid1 sda10[0] sdb10[1]
      204736 blocks [2/2] [UU]
      
md6 : active raid1 sda11[0] sdb11[1]
      204736 blocks [2/2] [UU]
      
md7 : active raid1 sda3[0] sdb1[1]
      83886016 blocks [2/2] [UU]
      
unused devices: 
% cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] \
[raid10] 
md2 : active raid1 sda7[0] sdb7[1]
      204736 blocks [2/2] [UU]
      
md5 : active raid1 sda10[0] sdb10[1]
      204736 blocks [2/2] [UU]
      
md1 : active raid1 sda6[0] sdb6[1]
      20971456 blocks [2/2] [UU]
      
md3 : active raid1 sda8[0] sdb8[1]
      204736 blocks [2/2] [UU]
      
md7 : active raid1 sda3[0] sdb1[1]
      83886016 blocks [2/2] [UU]
      
md6 : active raid1 sda11[0] sdb11[1]
      204736 blocks [2/2] [UU]
      
md4 : active raid1 sda9[0] sdb9[1]
      41942976 blocks [2/2] [UU]
      
md0 : active raid1 sda5[0] sdb5[1]
      20971456 blocks [2/2] [UU]
      
unused devices: 


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。