我有生成服务器内存和cpu使用的历史记录。但我无法在服务器上安装任何软件。
然后我正在尝试这个脚本
#!/bin/bash
while true; do
date >> system.log
top -n1 | grep 'Cpu\|Mem\|java\|eservices' >> system.log
echo '' >> system.log
sleep 2
done
但是当我尝试执行tail -500f system.log时,日志停止
答案 0 :(得分:2)
您应该使用-b
批处理模式参数。来自man top
:
以“批处理”模式启动,这对于将输出从顶部发送到其他程序或文件非常有用。在此模式下,top将不接受输入并运行,直到迭代限制您使用'-n'命令行选项设置或直到被杀死。
您可能希望使用便携式格式tail -n 500 -f
。
无论如何,将top
输出保存到文件然后在其上运行tail -f
会模仿top
的工作方式。你想要实现top
还没有做到的是什么?
答案 1 :(得分:1)