Linux--shell监控CPU和内存

*************************************************************************************************

#! /bin/bash

#By [email protected]

t=`date | awk ‘{print $4}‘ |awk -F ‘:‘ ‘{print $1$2$3}‘`

d=`date +%m/%d/%Y  |  awk -F ‘/‘ ‘{print $1$2}‘`

memfile=/home/walletUser/qhd/$d"-"$t"Mem".txt

cpufile=/home/walletUser/qhd/$d"-"$t"Cpu".txt

max_min_avgfile=/home/walletUser/qhd/$d"-"$t"calculation".txt

#calculate the cpu max

cpu_calc()

{

cpu_max=`cat $cpufile| awk -F ‘ ‘ ‘BEGIN {max = 0} {if ($6>max) max=$6 fi} END {print "CPU_Max=", max}‘`

cpu_min=`cat $cpufile|awk -F ‘ ‘ ‘BEGIN {min = 1000} {if ($6<min) min=$6 fi} END {print "CPU_Min=", min}‘`

cpu_avg=`cat $cpufile| awk -F ‘ ‘  ‘{sum+=$6} END {print "CPU_Average = ", sum/NR}‘`

echo   $cpu_max" "$cpu_min" "$cpu_avg"%"

}

#calculate the mem max

mem_calc()

{

mem_max=`cat $memfile| awk -F ‘ ‘ ‘BEGIN {max = 0} {if ($6>max) max=$6 fi} END {print "MEM_Max=", max}‘`

mem_min=`cat $memfile|awk -F ‘ ‘ ‘BEGIN {min = 999000} {if ($6<min) min=$6 fi} END {print "MEM_Min=", min}‘`

mem_avg=`cat $memfile| awk -F ‘ ‘  ‘{sum+=$6} END {print "MEM_Average = ", sum/NR}‘`

echo   $mem_max" "$mem_min" "$mem_avg"%"

}

# watch memory usage

watch_mem()

{

dd1=`date | awk ‘{print $2,$3,$4}‘`

memtotal=`cat /proc/meminfo |grep "MemTotal"|awk ‘{print $2}‘`

memfree=`cat /proc/meminfo |grep "MemFree"|awk ‘{print $2}‘`

cached=`cat /proc/meminfo |grep "^Cached"|awk ‘{print $2}‘`

buffers=`cat /proc/meminfo |grep "Buffers"|awk ‘{print $2}‘`

mem_usage=$((100-memfree*100/memtotal-buffers*100/memtotal-cached*100/memtotal))

mem_message=$dd1" Memory usage: $mem_usage%"

echo $mem_message >>$memfile

trap "echo ‘**********The results are as follows***********‘;echo `cpu_calc`|tee >>$max_min_avgfile;echo `mem_calc`|tee >>$max_min_avgfile;cat $max_min_avgfile;echo ‘*****************`date`*************‘;exit" 2

sleep 10s

}

# watch cpu

get_cpu_info()

{

cat /proc/stat|grep ‘^cpu[0-9]‘|awk ‘{used+=$2+$3+$4;unused+=$5+$6+$7+$8} END{print used,unused}‘

}

watch_cpu()

{

time_point_1=`get_cpu_info`

sleep 5s

time_point_2=`get_cpu_info`

dd2=`date | awk ‘{print $2,$3,$4}‘`

cpu_usage=`echo $time_point_1 $time_point_2|awk ‘{used=$3-$1;total=$3+$4-$1-$2;print used*100/total}‘`

cpu_message=$dd2" CPU Usage: $cpu_usage%"

echo $cpu_message >>$cpufile

}

while :

do

#trap "echo `cpu_max`;exit" 2

watch_cpu

watch_mem

#trap "echo `cpu_max`;exit" 2

done

Linux--shell监控CPU和内存,布布扣,bubuko.com

时间: 2024-11-11 20:51:15

Linux--shell监控CPU和内存的相关文章

利用shell监控cpu、磁盘、内存使用率

利用shell监控cpu.磁盘.内存使用率,达到警报阈值发邮件进行通知 并配合任务计划,即可及时获取报警信息 #!/bin/bash ############################################## #Author: Liuzhengwei - [email protected] #QQ:1135960569 #Last modified: 2017-04-19 21:50 #Filename: jiankong.sh #Description:  #########

shell 监控cpu,memory,load average

shell 监控cpu,memory,load average,记录到log,当负载压力时,发电邮通知管理员. 实现原理: 1.获取cpu,memory,load average的数值 2.判断数值是否超过自定义的范围,例如(CPU>90%,Memory<10%,load average>2) 3.如数值超过范围,发送电邮通知管理员.发送有时间间隔,每小时只会发送一次. 4.将数值写入log. 5.设置crontab 每30秒运行一次. #!/bin/bash # 系统监控,记录cpu.

Linux shell 脚本监控cpu,内存,硬盘,网络,是否存活

写脚本的背景:脚本实现简单的监控,而不需要用非常的重的监控软件完成. 脚本如下 #!/bin/sh # 脚本放入到/usr/local/bin # chmod 755 check_server.sh # crontab 中添加 source /etc/bashrc #------监控阈值 DISK_space_warn=90 CPU_load_warn=5 CPU_use_warn=50 MEM_use_warn=95 #SWAP_use_warn=50 Net_SYN_count_warn=2

Shell脚本监控CPU、内存和硬盘利用率

1.监控CPU利用率(通过vmstat工具) #!/bin/bash#====================================================# Author: lizhenliang - EMail:[email protected]# Create Date: 2015-02-01# Description: cpu utilization monitor# blog:lizhenliang.blog.51cto.com#===================

监控cpu、内存 &lt;shell&gt;

获取cpu.内存结果 pid=$1 #获取进程pid echo $pid interval=1 #设置采集间隔 while true do echo $(date +"%y-%m-%d %H:%M:%S") >> proc_memlog.txt cat /proc/$pid/status|grep -e VmRSS >> proc_memlog.txt #获取内存占用 cpu=`top -b -n 1 -p $pid|tail -2|head -1|awk '{

Linux资源控制-CPU和内存

主要介绍Linux下, 如果对进程的CPU和内存资源的使用情况进行控制的方法. CPU资源控制 每个进程能够占用CPU多长时间, 什么时候能够占用CPU是和系统的调度密切相关的. Linux系统中有多种调度策略, 各种调度策略有其适用的场景, 也很难说哪种调度策略是最优的. Linux的调度策略可以参见代码: include/linux/sched.h /* * Scheduling policies */ #define SCHED_NORMAL 0 #define SCHED_FIFO 1

PHP 获取linux服务器性能CPU、内存、硬盘、进程等使用率

数据库配置文件: conn.php <?php define("MONITORED_IP", "172.16.0.191"); //被监控的服务器IP地址 也就是本机地址 define("DB_SERVER", "172.16.7.2"); //存放数据的服务器IP地址 define("DB_USER", "root"); define("DB_PWD",&qu

获取两台linux服务器的cpu、内存、磁盘、网络等信息,可能不是最好的逻辑,但是对于小白的我自己动手收货不少

# coding: utf-8""" 作者:xiaofeng 功能:自动获取阿里云服务器的cpu.内存.磁盘.网络流量等信息,定时生产一个excel文件 版本:v1.1.5 日期:21/11/2019 版本迭代:各模块封装成方法,其中优化cpu计算方法"""import os,timeimport paramikoimport datetimeimport reimport xlwtdef main(): print("欢迎使用Linu

利用shell监控cpu、磁盘、内存使用率,达到警报阈值发邮件进行通知

#!/bin/bash#获取cpu使用率cpuUsage=top -n 1 | awk -F '[ %]+' 'NR==3 {print $2}'#获取磁盘使用率data_name="/dev/vda1"diskUsage=df -h | grep $data_name | awk -F '[ %]+' '{print $5}'logFile=/tmp/jiankong.log#获取内存情况mem_total=free -m | awk -F '[ :]+' 'NR==2{print