我正在尝试通过在 Arch Linux 上使用 top 将 CPU 和内存统计信息记录到文件中。我只对一个特定的过程感兴趣并获得所需的参数,如下所示:
top -b -n1 -p 310 | tail -fn 1 | awk '{printf "%s,%s,%s,%s\n",$1,$12,$9,$10}'
这给了我一个命令行输出,例如:
310,name,0.0,10.5
所以现在,如果我想以 1 秒的延迟运行这个命令 10 次并将输出写入我使用的日志文件:
top -b -n10 -p 310 -d 1 | tail -fn 1 | awk '{printf "%s,%s,%s,%s\n",$1,$12,$9,$10}' >> log.txt
但是,而不是将我逐行打印到日志文件,我只得到最后一个输出。所以我的日志文件只包含 1 行,尽管 top 必须执行了 10 次。
我在这里做错了什么?
PS:打印到命令行而不是打印到日志文件中也只会产生 1 行(最后一个输出)......