linux-检查磁盘-4k-对齐

脚本判断磁盘分区是否4k对齐

cat check_4k_sort.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PATH
##osd磁盘分区8块 97表示a
##日志分区2块,106 表示j
i=106
while [ $i -lt 108 ] # 这里会判断/dev/sdj和/dev/sdk 两块磁盘
do
j=`echo $i|awk '{printf "%c",$i}'`
echo "Start check : /dev/sd${j}"
result=`parted "/dev/sd$j" unit s print |awk '{print $2}' |awk 'NF' |grep -v 'Start' |grep -v 'Flags:' |grep -v 'DELL' |grep -v 'size' |grep -v 'Table:' |grep -v "/dev/sd$j:" |sed 's/s//g'`
array=(${result// / })
count=0
for var in ${array[@]}
do
count=$(($count+1))
is_4k=`expr $var / 8`
echo $is_4k |grep "^[[:digit:]]\+$" >>/dev/null
if [ $? -ne 0 ];then
echo "$var is a int"
echo "$/dev/sd$count is not 4k alignment"
fi
done
echo "$/dev/sd$count is 4k alignment"
i=$(($i+1))
echo -e "\n"
done