从命令中获取当前磁盘I/O使用情况。

我正在尝试从一个单一的命令中获取当前磁盘I/O使用率(以%表示)。
目前我有
iostat -dx /dev/sda 1 | awk  {'print $16'}

这给了我从iostat得到的I/O利用率条目。它还会不断更新和提供新的条目,这是我不想要的。
%util
0.06

%util
0.00

%util
0.09

我想要的只是一行简单地给出当前I/O使用率的百分比。因此,它的输出将会像这样:
0.06
1个回答

这对我来说似乎有效(在下面的例子中,第一个是在没有其他事情发生的情况下拍摄的,而第二个是在阅读一个大文件时拍摄的)。
doug@s15:~/iso$ iostat -dxy 2 1 /dev/sda | grep sda | awk  {'print $14'}
0.00
doug@s15:~/iso$ iostat -dxy 2 1 /dev/sda | grep sda | awk  {'print $14'}
100.00

该命令在2秒的时间间隔内取一个样本,并忽略起始统计数据。
注意:在我的电脑上,我不得不使用第14列而不是第16列。

OP使用的是18.04,这可能解释了第14列与第16列之间的差异? - WinEunuuchs2Unix
@WinEunuuchs2Unix :同意。我之前使用的是一台16.04版本的电脑(服务器)。为了完整起见,刚刚我检查了一台18.04版本的Ubuntu桌面电脑(还有一台旧的苹果Mac),确实有16列。我本来就觉得是这样,只是之前没去深入研究而已。 - Doug Smythies
我使用的是16.04版本,很可能社区中有一半的人也在使用这个版本,所以对于所有对iostat感兴趣的用户来说,了解16.04等于14,18.04等于16是很好的。顺便说一下,我刚刚写了一个与你的CPU相关的脚本,你可以在这里找到:https://askubuntu.com/questions/1141605/how-can-i-control-cpu-usage-on-a-chuwi-hi10-pro/1142671#1142671 - WinEunuuchs2Unix
使用awk命令将此合并为一个调用,并使用$NF打印最后一列,无论是哪个数字:iostat -dxy 2 1 /dev/sda | awk '/sda/{print $NF}' - dessert