我需要创建一个脚本来生成日志命令TOP

时间:2014-01-08 13:12:25

标签: bash unix sh

我有生成服务器内存和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时,日志停止

2 个答案:

答案 0 :(得分:2)

您应该使用-b批处理模式参数。来自man top

  

以“批处理”模式启动,这对于将输出从顶部发送到其他程序或文件非常有用。在此模式下,top将不接受输入并运行,直到迭代限制您使用'-n'命令行选项设置或直到被杀死。

您可能希望使用便携式格式tail -n 500 -f

无论如何,将top输出保存到文件然后在其上运行tail -f会模仿top的工作方式。你想要实现top还没有做到的是什么?

答案 1 :(得分:1)

要监控服务器上的总可用内存使用量,您可以

grep -F MemFree: /proc/meminfo

monitor process memory use

ps -o rss $pid