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

简介:

1、监控CPU利用率(通过vmstat工具)

1
<span style= "color:rgb(0,0,0);font-family:'宋体', SimSun;" > #!/bin/bash<br>#====================================================<br># Author: lizhenliang - EMail:zhenliang369@163.com<br># Create Date: 2015-02-01<br># Description: cpu utilization monitor<br># blog:lizhenliang.blog.51cto.com<br>#====================================================<br>if [ `uname` != "Linux" ];then<br>        echo "check os not linux."<br>        exit 1<br>fi<br>which vmstat &>/dev/null<br>if [ $? -ne 0 ];then<br>        echo "vmstat command no found, please install procps package." <br>        exit 1<br>fi<br>##################################################<br>cpu_us=`vmstat | awk '{print $13}' | sed -n '$p'`<br>cpu_sy=`vmstat | awk '{print $14}' | sed -n '$p'`<br>cpu_id=`vmstat | awk '{print $15}' | sed -n '$p'`<br>cpu_wa=`vmstat | awk '{print $16}' | sed -n '$p'`   #等待I/0完成<br>cpu_sum=$(($cpu_us+$cpu_sy))<br>cpu_info()<br>{<br>echo "CPU_Sum : $cpu_sum% ( CPU_Use:${cpu_us}% , CPU_System:${cpu_sy}% )" <br>echo "CPU_Idle : ${cpu_id}%"<br>echo "CPU_Wait : ${cpu_wa}"<br>}<br>#cpu_info;<br>if [ $cpu_sum -ge 90 ];then<br>        echo "CPU utilization $cpu_sum." | mail -s "CPU Monitor" baojingtongzhi@163.com<br>fi<br></span>

2、监控内存利用率

1
<span style= "color:rgb(0,0,0);font-family:'宋体', SimSun;" > #!/bin/bash<br>#====================================================<br># Author: lizhenliang - EMail:zhenliang369@163.com<br># Create Date: 2015-02-01<br># Description: memory utilization monitor<br># blog:lizhenliang.blog.51cto.com<br>#====================================================<br>which bc &>/dev/null<br>if [ $? -ne 0 ];then<br>        echo "bc command no found, Please install bc package." <br>        exit 1<br>fi<br>Date=`date +%F" "%H:%M`<br>IP=`ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -d: -f2`<br>Total=`free -m | grep Mem | awk '{print $2}'`<br>Use=`free -m | awk '/buffers\// {print $NF}'`<br>Free=$(($Total-$Use))<br>Total_conv=`echo "scale=2;$Total/1024" | bc | awk '{print $1"G"}'`  #通过bc计算,保留小数点后两位(scale)<br>if [ $Free -lt 200 ];then<br>        Content=`echo -e "Date : $Date \nHost : $IP \nTotal : ${Total_conv} \nUse : ${Use}M \nFree : ${Free}M"`<br>        echo "$Content" | mail -s "Memory Monitor" baojingtongzhi@163.com<br>fi<br></span>

3、监控磁盘利用率

1
<span style= "color:rgb(0,0,0);font-family:'宋体', SimSun;" > #!/bin/bash<br>#====================================================<br># Author: lizhenliang - EMail:zhenliang369@163.com<br># Create Date: 2015-02-01<br># Description: disk utilization monitor<br># blog:lizhenliang.blog.51cto.com<br>#====================================================<br>Date=`date +%F" "%H:%M`<br>IP=`ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -d: -f2`<br>Total=`fdisk -l | grep "Disk /dev/sd[a-z]" |awk '{print $2$3"GB"}' |sed 's/:/=/' |xargs echo -n |sed 's/[ ]/,/g'`    #去掉换行符,并以逗号分隔在邮件显示总每个分区大小<br>Disk_Use=`df -h |awk '{print $1"="$5}' | sed '1d' | sed 's/%//g'`<br>for i in $Disk_Use<br>do<br>        A=`echo $i |awk -F'=' '{print $2}'`<br>        if [ $A -gt 8 ];then<br>                echo -e "Date : $Date \nHost : $IP \nTotal : $Total \nProblem : Part Use ${i}%" | mail -s "Disk Mo<br>nitor" baojingtongzhi@163.com<br>        fi<br>done<br></span>
目录
相关文章
|
4天前
|
人工智能 运维 监控
2025年阿里云服务器配置选择全攻略:CPU、内存、带宽与系统盘详解
在2025年,阿里云服务器以高性能、灵活扩展和稳定服务助力数字化转型,提供轻量应用服务器、通用型g8i实例等多样化配置,满足个人博客至企业级业务需求。针对不同场景(如计算密集型、内存密集型),推荐相应实例类型与带宽规划,强调成本优化策略,包括包年包月节省成本、ESSD云盘选择及地域部署建议。文中还提及安全设置、监控备份的重要性,并指出未来可关注第九代实例g9i支持的新技术。整体而言,阿里云致力于帮助用户实现性能与成本的最优平衡。 以上简介共计238个字符。
|
2月前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
2月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
241 7
|
3月前
|
弹性计算 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:
513 1
|
2月前
|
存储 监控 算法
深入探索Java虚拟机(JVM)的内存管理机制
本文旨在为读者提供对Java虚拟机(JVM)内存管理机制的深入理解。通过详细解析JVM的内存结构、垃圾回收算法以及性能优化策略,本文不仅揭示了Java程序高效运行背后的原理,还为开发者提供了优化应用程序性能的实用技巧。不同于常规摘要仅概述文章大意,本文摘要将简要介绍JVM内存管理的关键点,为读者提供一个清晰的学习路线图。
|
3月前
|
Java
JVM内存参数
-Xmx[]:堆空间最大内存 -Xms[]:堆空间最小内存,一般设置成跟堆空间最大内存一样的 -Xmn[]:新生代的最大内存 -xx[use 垃圾回收器名称]:指定垃圾回收器 -xss:设置单个线程栈大小 一般设堆空间为最大可用物理地址的百分之80
|
3月前
|
Java
JVM运行时数据区(内存结构)
1)虚拟机栈:每次调用方法都会在虚拟机栈中产生一个栈帧,每个栈帧中都有方法的参数、局部变量、方法出口等信息,方法执行完毕后释放栈帧 (2)本地方法栈:为native修饰的本地方法提供的空间,在HotSpot中与虚拟机合二为一 (3)程序计数器:保存指令执行的地址,方便线程切回后能继续执行代码
38 3
|
3月前
|
存储 缓存 监控
Elasticsearch集群JVM调优堆外内存
Elasticsearch集群JVM调优堆外内存
73 1
|
3月前
|
缓存 Prometheus 监控
Elasticsearch集群JVM调优设置合适的堆内存大小
Elasticsearch集群JVM调优设置合适的堆内存大小
649 1
|
3月前
|
Arthas 监控 Java
JVM进阶调优系列(9)大厂面试官:内存溢出几种?能否现场演示一下?| 面试就那点事
本文介绍了JVM内存溢出(OOM)的四种类型:堆内存、栈内存、元数据区和直接内存溢出。每种类型通过示例代码演示了如何触发OOM,并分析了其原因。文章还提供了如何使用JVM命令工具(如jmap、jhat、GCeasy、Arthas等)分析和定位内存溢出问题的方法。最后,强调了合理设置JVM参数和及时回收内存的重要性。