用于记录cpu的shell脚本和linux进程的内存使用情况
发布时间:2020-12-15 21:47:07 所属栏目:安全 来源:网络整理
导读:我正在寻找一种方法来记录和图形显示 linux进程的CPU和RAM使用情况.因为我找不到一个简单的工具(我试过zabbix和munin但是安装失败了)我开始写一个shell脚本来这样做 脚本文件通过awk解析top命令的输出并登录到csv文件.它 通过ps命令计算出进程的pid 使用top
我正在寻找一种方法来记录和图形显示
linux进程的CPU和RAM使用情况.因为我找不到一个简单的工具(我试过zabbix和munin但是安装失败了)我开始写一个shell脚本来这样做
脚本文件通过awk解析top命令的输出并登录到csv文件.它 >通过ps命令计算出进程的pid 以下是脚本的外观 #!/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}' 我如何能 >打印多个进程的资源使用情况.指定多个 思考/投入? 提前致谢. 解决方法
要找出PID,您可以使用pgrep大大简化脚本:
REDIS_PID=$(pgrep -f redis) LOGSTASH_PID=$(pgrep -f logstash) ELASTICSEARCH_PID=$(pgrep -f elasticsearch) KIBANA_PID=$(pgrep -f kibana) 编辑:抱歉不得不离开工作,无法提供完整的答案. 为了捕获top的输出,请使用以下脚本: while :; do top -n 1 -b | awk -v redis="$REDIS_PID" -v logstash="$LOGSTASH_PID" '$1 == redis || $1 == logstash {print $1","$12}' >> $LOG_FILE sleep 3 done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |