lsblkディスクサイズ値をdf -hのディスクサイズ値と比較する方法

lsblkディスクサイズ値をdf -hのディスクサイズ値と比較する方法

df-hからlsblk サイズ間のディスクサイズを比較したいと思いますresize2fs。その後はサイズに基づいてサイズを確認したいとresize2fs思います。df -hlablk

だから我々はlsblk

lsblk
NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb                  8:16   0    4G  0 disk /data1
sdc                  8:32   0    4G  0 disk /data2
sdd                  8:48   0    4G  0 disk /data3

df -hから

df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/sdb                    3.9G   22M  3.8G   1% /data1
/dev/sdc                    3.9G   18M  3.8G   1% /data2
/dev/sdd                    3.9G   18M  3.8G   1% /data3

だから私はbashスクリプトで次のことをしました。

[[ ` lsblk | grep "^sdb" | awk '{print $4}'  ` == ` df -h | awk -v disk_var="sdb" '$1 ~ disk_var' | awk '{print $2}'  ` ]] && echo "val are equal " || echo "val are not equal "

したがって、上記で得られた値は、値が同じでなければならないにもかかわらず同じではありません。

df -h""を使用しての値と比較できる読み取り可能なサイズ値を取得する方法について提案がありますかlsblk

私たちはrhel 7.6サーバーを開発しています。

ベストアンサー1

変数を作成して開始できます。

df=$(df -h | awk '/sdb/{printf "%.0f\n", $2}' | tr -d 'M|G|T')
blk=$(lsblk | awk '/sdb/ {printf "%.0f\n", $4}' | tr -d 'M|G|T')

その後、それらとテストを実行します。

[[ $blk -eq $df ]] && echo "val are equal " || echo "val are not equal "

おすすめ記事