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

简介:

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

并配合任务计划,即可及时获取报警信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
##############################################
#Author: Liuzhengwei - 1135960569@qq.com
#QQ:1135960569
#Last modified: 2017-04-19 21:50
#Filename: jiankong.sh
#Description: 
##############################################
#获取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 $2}' `
mem_used=` free  -m |  awk  -F  '[ :]+'  'NR==3{print $3}' `
#统计内存使用率
mem_used_persent=` awk  'BEGIN{printf "%.0f\n",(' $mem_used '/' $mem_total ')*100}' `
#获取报警时间
now_time=` date  '+%F %T' `
function  send_mail(){
         mail -s  "监控报警"  1135960569@qq.com <  /tmp/jiankong .log
}
function  check(){
         if  [[  "$cpuUsage"  > 80 ]] || [[  "$diskUsage"  > 80 ]] || [[  "$mem_used_persent"  > 80 ]]; then
                 echo  "报警时间:${now_time}"  > $logFile
                 echo  "CPU使用率:${cpuUsage}% --> 磁盘使用率:${diskUsage}% --> 内存使用率:${mem_used_persent}%"  >> $logFile
                 send_mail
         fi
}
function  main(){
         check
}
main
本文转自激情燃烧的岁月博客51CTO博客,原文链接http://blog.51cto.com/liuzhengwei521/1917501如需转载请自行联系原作者                    weilovepan520
相关文章
|
27天前
|
监控 异构计算
Jetson 学习笔记(八):htop查看CPU占用情况和jtop监控CPU和GPU
在NVIDIA Jetson平台上使用htop和jtop工具来监控CPU、GPU和内存的使用情况,并提供了安装和使用这些工具的具体命令。
89 0
|
8天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
161 1
|
20天前
|
运维 JavaScript Linux
容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑
本文介绍了如何在Docker容器内的Node.js应用中获取宿主机的基础信息,包括系统信息、内存使用情况、磁盘空间和启动时间等。核心思路是将宿主机的根目录挂载到容器,但需注意权限和安全问题。文章还提到了使用`df -P`替代`df -h`以获得一致性输出,避免解析错误。
|
1月前
|
C# 开发工具 Windows
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
39 0
|
3月前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
331 0
|
13天前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
26 1
|
17天前
|
存储
共用体在内存中如何存储数据
共用体(Union)在内存中为所有成员分配同一段内存空间,大小等于最大成员所需的空间。这意味着所有成员共享同一块内存,但同一时间只能存储其中一个成员的数据,无法同时保存多个成员的值。
|
21天前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
26天前
|
存储 编译器
数据在内存中的存储
数据在内存中的存储
37 4
|
25天前
|
存储 Java
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
这篇文章详细地介绍了Java对象的创建过程、内存布局、对象头的MarkWord、对象的定位方式以及对象的分配策略,并深入探讨了happens-before原则以确保多线程环境下的正确同步。
46 0
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配