利用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
相关文章
|
2月前
|
Web App开发 监控 JavaScript
监控和分析 JavaScript 内存使用情况
【10月更文挑战第30天】通过使用上述的浏览器开发者工具、性能分析工具和内存泄漏检测工具,可以有效地监控和分析JavaScript内存使用情况,及时发现和解决内存泄漏、过度内存消耗等问题,从而提高JavaScript应用程序的性能和稳定性。在实际开发中,可以根据具体的需求和场景选择合适的工具和方法来进行内存监控和分析。
|
3月前
|
监控 异构计算
Jetson 学习笔记(八):htop查看CPU占用情况和jtop监控CPU和GPU
在NVIDIA Jetson平台上使用htop和jtop工具来监控CPU、GPU和内存的使用情况,并提供了安装和使用这些工具的具体命令。
264 0
|
1月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
142 7
|
2月前
|
存储 Prometheus 监控
监控堆外内存使用情况
监控堆外内存使用情况
55 4
|
2月前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
321 1
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
886 2
|
3月前
|
监控 数据可视化 Java
如何使用JDK自带的监控工具JConsole来监控线程池的内存使用情况?
如何使用JDK自带的监控工具JConsole来监控线程池的内存使用情况?
|
3月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
127 1
|
2月前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
74 2
6种方法打造出色的Shell脚本