5
我正在寻找一种记录和图形化显示linux进程的cpu和RAM使用情况的方法。因为我找不到一个简单的工具(我试过zabbix和munin但安装失败),我开始编写一个shell脚本来执行此操作用于记录linux进程的cpu和内存使用情况的shell脚本
脚本文件通过awk解析top命令的输出并将其记录到csv中文件。它
- 图中的处理过程的PID通过ps命令
- 用途顶部和awk登录CPU和内存使用。
这里是脚本的样子
#!/bin/sh
#A script to log the cpu and memory usage of linux processes namely - redis, logstash, elasticsearch and kibana
REDIS_PID=$(ps -ef | grep redis | grep -v grep | awk '{print $2}')
LOGSTASH_PID=$(ps -ef | grep logstash | grep -v grep | awk '{print $2}')
ELASTICSEARCH_PID=$(ps -ef | grep elasticsearch | grep -v grep | awk '{print $2}')
KIBANA_PID=$(ps -ef | grep kibana | grep -v grep | awk '{print $2}')
LOG_FILE=/var/log/user/usage.log
echo $LOG_FILE
top -b | awk -v redis="$REDIS_PID" -v logstash="$LOGSTASH_PID" '/redis|logstash/ {print $1","$9","$10","$12}'
我如何
- 打印多个进程的资源使用情况。在awk模式中指定多个 变量不起作用。它输出 使用第一PID(在上面的脚本redis的)印刷与资源使用沿着资源的详细信息(通过日期+“%T”)
- 打印进程名称时
- 打印当前时间戳。 Redis,Logstash,ElasticSearch或Kibana在上述情况下
- 将上述命令输出重定向到日志文件。我试过> $ LOG_FILE,但没有奏效。
想法/输入?
在此先感谢。
这是不是一个问题的答案多一个侧面说明的。 – 2013-05-07 10:04:08
有帮助,但不是答案:) – 2013-05-07 11:31:00