监控Linux系统的内存和CPU,并使用excel表格绘制曲线
来源:互联网 发布:mac比较好用的浏览器 编辑:程序博客网 时间:2024/06/07 08:42
#!/bin/bash
#基于同事的脚本,做了一下修改
#目的:nmon只能对系统整体监控,不能针对单个进程。
#使用方法:将监控结果粘贴到excel中进行处理,就可以利用曲线看内存与CPU的走势。
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
if [ -z "$5" ];then
echo "please enter really data"
echo "sample"
echo "./scriptname PsName PSport Per Count Path"
echo "./cpu.sh kbaseserver 6516 10 6 ./foldername"
else
Filename=$0 #脚本名
PsName=$1 #程序名
PSport=$2 #端口号
Per=$3 #间隔的秒数
Count=$4 #记录次数
Path=$5 #记录文件夹
mkdir ${Path:2} #创建记录文件夹,我这里并没有对文件夹存在做判断,自己感觉无伤大雅。字符串位置从0开始的;也可以用basename
kernel=`cat /proc/cpuinfo | grep processor | wc -l` #取系统的内核数
Date=`date +%y%m%d_%H%M%S` #取系统时间
PID=`ps -ef |grep $PsName |grep $PSport |grep -v grep|grep -v $Filename|awk '{print $2}'` #取进程号
echo $PID
echo "begin"
echo "------------------------"
for ((i=1;i<=$4;i++))
do
if [ "-$PID" == "-" ];then
echo "NO $i The $PsName does not exist." >>$Path/log_$Date.txt #若进程不在,报错在日志里
else
echo "NO $i" >>$Path/log_$Date.txt
VmRSS=`cat /proc/$PID/status |grep -e VmRSS|awk '{print $2}'` #从进程文件中取内存
VmRSS=$(expr "($VmRSS/1024)"|bc) #将内存换算成M
echo $VmRSS >> $Path/VmRSS_$Date.txt
#为什么不正着数,前边存在多个空格的问题,所以反着数
CPU=`top -n 1 -p $PID|tail -2|head -1|awk '{print $(NF-4)}'` #从进程文件中取CPU
CPU=$(expr "scale=2;($CPU/$kernel)"|bc) #换算成单个内核的CPU
echo $CPU >> $Path/CPU_$Date.txt
sleep $Per #间隔时间
j=$(($j+1)) #记录总数
fi
done
if [ "$j" == "$Count" ] ;then #如果记录总数与实际总数相同,则程序正常
echo "normal operation" >>$Path/log_$Date.txt
echo "end"
fi
fi
#基于同事的脚本,做了一下修改
#目的:nmon只能对系统整体监控,不能针对单个进程。
#使用方法:将监控结果粘贴到excel中进行处理,就可以利用曲线看内存与CPU的走势。
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
if [ -z "$5" ];then
echo "please enter really data"
echo "sample"
echo "./scriptname PsName PSport Per Count Path"
echo "./cpu.sh kbaseserver 6516 10 6 ./foldername"
else
Filename=$0 #脚本名
PsName=$1 #程序名
PSport=$2 #端口号
Per=$3 #间隔的秒数
Count=$4 #记录次数
Path=$5 #记录文件夹
mkdir ${Path:2} #创建记录文件夹,我这里并没有对文件夹存在做判断,自己感觉无伤大雅。字符串位置从0开始的;也可以用basename
kernel=`cat /proc/cpuinfo | grep processor | wc -l` #取系统的内核数
Date=`date +%y%m%d_%H%M%S` #取系统时间
PID=`ps -ef |grep $PsName |grep $PSport |grep -v grep|grep -v $Filename|awk '{print $2}'` #取进程号
echo $PID
echo "begin"
echo "------------------------"
for ((i=1;i<=$4;i++))
do
if [ "-$PID" == "-" ];then
echo "NO $i The $PsName does not exist." >>$Path/log_$Date.txt #若进程不在,报错在日志里
else
echo "NO $i" >>$Path/log_$Date.txt
VmRSS=`cat /proc/$PID/status |grep -e VmRSS|awk '{print $2}'` #从进程文件中取内存
VmRSS=$(expr "($VmRSS/1024)"|bc) #将内存换算成M
echo $VmRSS >> $Path/VmRSS_$Date.txt
#为什么不正着数,前边存在多个空格的问题,所以反着数
CPU=`top -n 1 -p $PID|tail -2|head -1|awk '{print $(NF-4)}'` #从进程文件中取CPU
CPU=$(expr "scale=2;($CPU/$kernel)"|bc) #换算成单个内核的CPU
echo $CPU >> $Path/CPU_$Date.txt
sleep $Per #间隔时间
j=$(($j+1)) #记录总数
fi
done
if [ "$j" == "$Count" ] ;then #如果记录总数与实际总数相同,则程序正常
echo "normal operation" >>$Path/log_$Date.txt
echo "end"
fi
fi
0 0
- 监控Linux系统的内存和CPU,并使用excel表格绘制曲线
- python绘制excel表格曲线
- 监控CPU和内存的使用
- shell脚本监控系统负载、CPU和内存使用情况
- shell脚本监控系统负载、CPU和内存使用情况
- linux系统下如何使用caffe自带的工具绘制loss和accuracy曲线
- 利用python监控linux系统cpu、内存、文件系统的使用情况以及简单的邮件报警
- linux查看系统cpu和内存使用状况的方法
- linux查看系统cpu和内存使用状况的方法
- 使用shell 脚本对 Linux 系统进程的CPU使用率与内存资源进行监控
- 使用shell 脚本对 Linux 系统进程的CPU使用率与内存资源进行监控
- linux 下cpu 内存 磁盘 jvm的使用监控
- linux 下cpu 内存 磁盘 jvm的使用监控
- linux 下cpu 内存 磁盘 jvm的使用监控
- Linux 环境下监控进程内存和CPU的使用率
- 使用JAVA SNMP监控HP UNIX的CPU和内存
- 使用CACTI监控H3C设备的CPU和内存使用率
- Linux--shell监控CPU和内存
- [leetcode]143. Reorder List -- JavaScript 代码
- c#访问C盘user当前用户下的文件夹
- HDU:1541 Stars(树状数组)
- Vika and Squares
- 【Spring源码--IOC容器的实现】(四)BeanDefinition的注册
- 监控Linux系统的内存和CPU,并使用excel表格绘制曲线
- PULL解析XML文件
- Intellij IDEA 与 Gitlab 实现代码上传与下载
- Android NDK开发——环境配置
- [线性代数]Note4--A的LU分解&转置-置换-向量空间
- java三大框架spring的JdbcTemplate连接数据库(C3P0)
- (模板题)poj 2115 C Looooops(扩展欧几里得算法)
- MD5加密
- HDU 2844(多重背包)