linux – 如何将vmstat输出插入到始终只保留最新条目的文件中

我想每10秒钟将vmstat输出插入一个文件.我使用以下命令来执行此操作.

vmstat 10 > vmstatfile.txt

这将创建一个名为vmstatfile.txt的文件,并每10秒追加一次.我想要的是,我的文件应该始终包含一个vmstat条目,最新的条目,以便文件不会增长.这可能吗?那怎么办呢?

解决方法:

好吧,没有参数vmstat打印一个报告,所以你可以在一个带有延迟的简单shell循环中运行它:

while true; do 
    vmstat > vmstatfile.txt
    sleep 10
done

但是,第一个报告是自启动以来的平均值,因此如果您希望文件包含最近一段时间的报告,则必须至少要求两个报告.如果要删除每次运行时打印的第一个报告,可以使用sed删除它(删除第三行).我们必须在这里使用临时文件,因此实际目标文件在任何时候都不会包含部分输出.

while true; do 
    vmstat 10 2 | sed -e 3d > vmstatfile.tmp
    mv vmstatfile.tmp vmstatfile.txt
done
上一篇:vmstat命令实战详解


下一篇:Linux的150个命令和快捷键