Linux命令将GB动态转换为MB

时间:2018-02-15 23:53:06

标签: linux shell

我需要编写一个脚本来显示总交换大小,使用的交换大小和使用的百分比。

以下是我正在使用的命令。

pgsize=`swapon | tail -1 | awk '{print $3}'`

pgused=`swapon | tail -1 | awk '{print $4}'`

pgpercent=$(($pgused * 100/ $pgsize))

命令的输出是 pgsize = 16G pgused = 22M pgpercent - 我在此行中收到以下错误

22M:对于基数来说价值太大了(错误令牌是" 22M")

在这里,我如何将22M转换为22和16G转换为16 * 1024并进行划分。例如。 (22 * 100)/(16 * 1024)

2 个答案:

答案 0 :(得分:3)

swapon有一个--bytes参数

因此:

  

swapon --raw --bytes |尾巴-1 | awk' {print $ 4" /" $ 3}' | BC

答案 1 :(得分:3)

打印swapon列出的最后一个交换区域的使用百分比:

swapon --bytes --show=USED,SIZE | awk 'END{print 100*$1/$2}'

将其保存在变量中:

ppgpercent=$(/sbin/swapon --bytes --show=USED,SIZE | awk 'END{print 100*$1/$2}')