df
-hからlsblk
サイズ間のディスクサイズを比較したいと思いますresize2fs
。その後はサイズに基づいてサイズを確認したいとresize2fs
思います。df -h
lablk
だから我々は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 "
答え2
該当するマニュアルから:
df は、各ファイル名引数を含むファイルシステムの空きディスク容量を表示します。
lsblk は、使用可能または指定されたすべてのブロック装置に関する情報をリストします。
IOWは、rawブロックデバイスとそのサイズdf
とともに、各パーティションが保持できる実際のデータ量を示しています。lsblk
同時に、対応するフィールドを使用してlsblk
同じ情報を表示できます。df
lsblk -b -o NAME,FSSIZE,FSUSED,FSAVAIL,FSUSE%,MOUNTPOINT
そしてdf -B1
正確に一致します。
df
空き容量と空き率の値が混乱しています。彼らはとても無関係に見えました。たとえば、ルートパーティションの場合、rawバイトの面で四捨五入すると、出力と同じで一致する31.9%
結果が得られますが、表現は大きく異なります。32%
lsblk
df
34%