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) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。