我想每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