代码之家  ›  专栏  ›  技术社区  ›  dimba

vmstat和列

  •  5
  • dimba  · 技术社区  · 14 年前

    我想使用列实用工具来格式化对齐列中iostat的输出。

    我想运行类似于:

    vmstat 1 10 | column -t
    

    但是输出只有在10秒后才会出现(vmstat完成其工作),而不是每秒钟。

    有什么想法吗?

    4 回复  |  直到 6 年前
        1
  •  3
  •   Carl Smotricz    14 年前

    发生这种情况的原因是,列等待收集尽可能多的输入,以便根据这些输入进行列猜测。它无法知道数据模式每秒钟重复一次。

    您可以通过运行以下命令来大致了解您要执行的操作:

    for i in 0 1 2 3 4 5 6 7 8 9; do iostat | column -t; sleep 1; done
    

    编辑

    感谢丹尼斯的一些建议:

    for i in {0..9} ; do iostat 1 1 | column -t; sleep 1; done
    

    唯一不同的是,第一个标题行每秒重复一次。一些步法 sed grep 可以解决这个问题。

        2
  •  2
  •   NOZUONOHIGH    6 年前

    试试这个:

    vmstat -w 1 5
    

    这在虚拟机中很好用,但在内存很大的物理机器中,CPU的容量可能不如在虚拟机中好。

        3
  •  0
  •   David    11 年前

    我认为这正是你想要达到的目标:

    vmstat 1 10 | while read line
    do
        echo "$line" | column -t
    done
    
        4
  •  -1
  •   Marco    7 年前

    试试这个

    vmstat 1 10 >> /tmp/vmout.txt; tail -f /tmp/vmout.txt