#一.编写系统负载监控的脚本文件
#!/bin/bash

########################################################################
#This scripts is checking the system load,vision 0.1
#Author:HeJunyi
#E-mail:158****4484@163.com
########################################################################

#使用uptime命令监控linux系统负载变化
 
#提取本服务器的IP地址信息
IP=`ifconfig eth1 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
 
#抓取cpu的总核数
cpu_num=`grep -c 'model name' /proc/cpuinfo`
 
#抓取当前系统15分钟的平均负载值
load_15=`uptime | awk '{print $NF}'`
 
#计算当前系统单个核心15分钟的平均负载值,结果小于1.0时前面个位数补0。
average_load=`echo "scale=2;a=$load_15/$cpu_num;if(length(a)==scale(a)) print 0;print a" | bc`  ##scale表示小数精度位数
 
#取上面平均负载值的个位整数
average_int=`echo $average_load | cut -f 1 -d "."`
 
#设置系统单个核心15分钟的平均负载的告警值为0.70(即使用超过70%的时候告警)。
load_warn=0.70
 
#当单个核心15分钟的平均负载值大于等于1.0(即average_int个位整数大于0);如果小于1.0则进行二次比较
if (($average_int > 0)); then
      echo "$IP服务器15min平均负载达到$average_load,超过警戒值1.0,请立即处理!"
else
#当前系统15分钟平均负载值与告警值进行比较(当大于成立会返回1,小于时会返回0 )
load_now=`expr $average_load \> $load_warn`
 
#如果系统单个核心15分钟的平均负载值大于告警值0.70(返回值为1),则发邮件给管理员
 if (($load_now == 1)); then
    echo "$IP服务器15min平均负载达到$average_load,超过警戒值0.00,请及时处理"
 fi
fi

二、监控系统cpu的情况
#!/bin/bash

########################################################################
#This scripts is checking the cpu,vision 0.1
#Author:HeJunyi
#E-mail:158****4484@163.com
########################################################################
 
#提取本服务器的IP地址信息
IP=`ifconfig eth1|grep "inet addr"|awk '{print $2}'|cut -f2 -d":"`
 
#取当前空闲cpu百份比值
cpu_id=`top -b -n1|grep "Cpu"|awk '{print $5}'|cut -f1 -d"%"`

#取当前空闲cpu百份比值的整数部分
cpu_int=`echo $cpu_id|cut -f1 -d"."`
 
#设置空闲cpu的告警值为20%(即剩余小于20%)
if (($cpu_id < 20)); then
 echo "$IP服务器cpu剩余:$cpu_id%,请及时处理"
else
 echo "$IP服务器cpu剩余:$cpu_id%"
fi

三、监控系统内存
#!/bin/bash

########################################################################
#This scripts is checking the free_mem,vision 0.1
#Author:HeJunyi
#E-mail:158****4484@163.com
########################################################################
 
#抓取物理内存free值
echo Mem-free: `free -m | grep Mem | awk '{print $4}'`M  
 
#抓取缓冲区的free值
echo buffers/cache-free: `free -m | grep - | awk '{print $4}'`M
 
#抓取Swap分区free值
echo Swap-free: `free -m | grep Swap | awk '{print $4}'`M

四、监控系统交换分区swap的情况
#!/bin/bash

########################################################################
#This scripts is checking the swap,vision 0.1
#Author:HeJunyi
#E-mail:158****4484@163.com
########################################################################
 
#提取本服务器的IP地址信息
IP=`ifconfig eth1 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
 
#系统分配的交换分区总量
swap_total=`free -m | grep Swap | awk '{print  $2}'`
 
#当前剩余的交换分区free大小
swap_free=`free -m | grep Swap | awk '{print  $4}'`
 
#当前已使用的交换分区used大小
swap_used=`free -m | grep Swap | awk '{print  $3}'`

#设置交换分区的告警值为20%
swap_warn=0.20

if (($swap_used != 0)); then
 
#如果交换分区已被使用,则计算当前剩余交换分区free所占总量的百分比,用小数来表示,要在小数点前面补一个整数位0
   swap_per=`echo "scale=2;b=$swap_free/$swap_total;if(length(b)==scale(b)) print 0;print b"|bc`

#当前剩余交换分区百分比与告警值进行比较(当小于告警值20%时会返回1,小于大于时会返回0 )
   swap_now=`expr $swap_per \< $swap_warn`
 
#如果当前交换分区使用即剩余小于20%(上面的返回值等于1)
  if (($swap_now ==1));then
  echo "$IP服务器swap交换分区使用率达到80%,只剩下"$swap_free"M 未使用,请及时处>理!"
 fi
fi

转载于:https://blog.51cto.com/12158275/1913810

shell脚本监控系统负载、CPU和内存使用情况相关推荐

  1. linux下实现内存监视,shell脚本来监视Linux上的内存使用情况

    shell脚本来监视Linux上的内存使用情况 监视所有内容,例如CPU利用率,内存利用率,交换利用率,磁盘空间利用率等等. 如果您只有很少的系统并且要监视它们,那么编写一个小的Shell脚本可以使您 ...

  2. Linux编写脚本监控系统负载,linux系统管理-编写Shell脚本监测服务器状态

    --为了持续观察服务器每天的基本运行状况,提供方便易读的集中的日志记录数据,需要结合Shell脚本和计划任务设置,定期记录不同时间段服务器的CPU负载.内存和交换空间.磁盘使用率等各种信息 需求描述 ...

  3. 用shell脚本监控系统

    简单的用shell脚本写一个"监控"程序作为思路,大致为:实时检测系统的内存使用率,如果大于阈值那么报警(如果有条件可以使用短信接口或者实在不行可以使用邮件通知),并记录到日志文件 ...

  4. shell脚本实例-系统监控

    shell脚本监控网站并实现邮件.短信报警 shell进程监控脚本(发送邮件报警) Shell脚本监控服务器在线状态和邮件报警的方法 http://www.jbxue.com/jb/shell/ 11 ...

  5. linux 脚本实现物理备份,shell脚本实现系统监视统计与数据备份

    知识内容:*管理统计信息*执行备份*管理用户对于linux SA来说,没啥比shell脚本编程更有用的了.linux系统每天都有很多任务需要做好,从监视系统 磁盘空间.系统用户到备份系统重要文件.通过 ...

  6. top 命令_Linux监控cpu以及内存使用情况之top命令

    top命令是Linux下常用的性能分析工具,比如cpu.内存的使用,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程 ...

  7. linux shell脚本攻略_(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤...

    今天为大家带来的内容是:(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤 本文内容主要介绍了Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤,文章 ...

  8. 用shell脚本监控进程是否存在 不存在则启动的实例

    用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/sh ps -fe|grep processString |grep -v grep if [ $? -ne 0 ] ...

  9. 使用shell脚本监控共享池内存碎片

    使用shell脚本监控共享池内存碎片 环境 [monitor:/]#uname -a HP-UX monitor B.11.11 U 9000/785 2013813380 unlimited-use ...

最新文章

  1. Linux Shell 命令--tr
  2. 字节Java高级岗:javaio流面试题
  3. 浙大计算机 在职博士,浙江大学在职博士含金量高吗?
  4. (JAVA学习笔记) 关于方法的递归-阶乘方法演示
  5. java performance tools / NetBeans Profiler / Sun BTrace / Eclipse MAT / IBM ISA
  6. Channel Allocation HDU1373
  7. 【linux】kill命令信号总结
  8. 卡耐基梅隆大学CMU Brandon Amos博士论文《可微优化机器学习建模》
  9. android 标题栏进度圈使用方法,Android 标题栏显示进度条
  10. JQ实现标签栏切换效果、导航栏下滑效果以及动画队列和stop()方法
  11. es 安装 ik 分词器
  12. 一文带你掌握抓包工具的使用-科来
  13. 智慧城市发展参差不齐 亟待分级分类破“短板”
  14. 西数硬盘刷新固件_机械硬盘选购:SMR避坑指南
  15. 外资餐饮连锁或因产品质量影响销售额
  16. 产品线架构设计的基本步骤
  17. 为了广大AI男的婚姻幸福,求求AI男们不要学习金融男好榜样了
  18. Web系统常见安全漏洞介绍及解决方案-sql注入
  19. Java之BlockingQueue
  20. 手机扫一扫ocr识别技术

热门文章

  1. 使用FIR.im发布自己的移动端APP
  2. 解决sqlplus的segmentation fault或hang问题
  3. DB2中导出数据库的所有DDL脚本
  4. Docker网络配置进阶
  5. 计算机网络-TCP协议
  6. 【Linux 内核 内存管理】RCU 机制 ④ ( RCU 模式下更新链表项 list_replace_rcu 函数 | 链表操作时使用 smp_wmb() 函数保证代码执行顺序 )
  7. 【鸿蒙 HarmonyOS】Ability 中使用 XML 布局文件 绘制布局及 UI 组件
  8. 【组合数学】生成函数 ( 使用生成函数求解多重集 r 组合数 )
  9. .dll与.lib的关系总结
  10. 基于UDP协议的socket套接字编程 基于socketserver实现并发的socket编程