在iotop -b的输出中对前十个进程进行排序并显示
我使用以下命令序列来显示消耗磁盘写入最多的前10个进程并记录日志:
/usr/sbin/iotop -b -n1 -qqq | sort -k1.36,1.43 -rn | head \>\> iotop.log
唯一的问题是,从第36个字符到第43个字符之间的排序没有考虑到数字后面的单位,因此有时会得到这样的结果:
TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND
b' 48925 be/4 oracle 0.00 B/s 80.31 K/s 0.00 % 0.00 % tnslsnr LISTENER_SCAN1 -no_crs_notify -inherit'
b' 49852 be/4 oracle 0.00 B/s 10.04 K/s 0.00 % 0.00 % ora_lg00_dbmxp2'
b'1332594 be/4 root 0.00 B/s 6.67 M/s 0.00 % 0.00 % nessus-agent-module -q'
我希望这里的最后一行排在最前面,因为它的磁盘写入速率为6.67 M/s,超过80.31 K/s。我还可以进一步修改排序选项。不过,有人有更好的主意吗?
解决方案
这并不能百分之百满足你的需求,但至少排序会起作用。
传入 --kilobytes 或 -k 以将所有数值以千字节为单位输出。这意味着 6.67 M/s 将显示为 667x K/s,但至少最大的数字会排在最前面。
/usr/sbin/iotop -k -b -n1 -qqq | sort -k1.36,1.43 -rn | head \>\> iotop.log
^^
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。