bash脚本怎么监控cup/内存/磁盘使用率
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,本篇内容主要讲解"bash脚本怎么监控cup/内存/磁盘使用率",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"bash脚本怎么监控cup/内存/磁盘使用率"
千家信息网最后更新 2025年11月13日bash脚本怎么监控cup/内存/磁盘使用率
本篇内容主要讲解"bash脚本怎么监控cup/内存/磁盘使用率",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"bash脚本怎么监控cup/内存/磁盘使用率"吧!
目录
查看消耗内存最多的前40个进程:
自动任务做一个基础资源告警脚本
利用free工具监控内存利用率,超过80报警并提取出占用内存最高的前十进程。
利用df命令监控磁盘利用率,超过80报警。
#!/bin/bash#获取内存情况mem_total=`free | awk 'NR==2{print $2}'` #获取内存总大小mem_use=`free | awk 'NR==2{print $3}'` #获取内存使用大小#统计内存使用率 (使用大小/总大小)mem_use_rate=`awk 'BEGIN{print('$mem_use'/'$mem_total')*100}'| awk '{print int($0)}'`#echo $mem_use_rate ----------#获取磁盘使用率disk_use_rate_str=`df -h | grep /dev/vda1 | awk -F '[ %]+' '{print $5}'| awk '{print int($0)}'`#获取cpu使用率cpu_use_rate=`top -n 1 | grep Cpu |awk '{print $2}'| awk '{print int($0)}'`#报警时间file_log=/home/error.log #提前创建now_time=`date '+%F %T'`function send_mail(){}function check(){ if [[ "men_use_rate" > 50 ]] || [[ "disk_use_rate" > 50 ]] || [[ "cpu_use_rate" > 50 ]];then echo "报警时间:"$now_time > $file_log echo "cpu使用率:${cpu_use_rate}% --> 磁盘使用率:${disk_use_rate}% --> 内存使用率:${men_use_rate}%" send_mail fi}function main(){ check}main注: awk '{print int($0)}'
可以将浮点数转为整数 在进行比较大小 shell 不支持浮点直接与整数进行比较
需要用的bc 的计算方式
if [[ "men_use_rate" > 50 ]] 等同于 if [ $men_use_rate > 50 ]
bc 例:
#!/bin/bashvar1=20var2=3.14159var3=`echo "scale=0;$var2 - $var1 " | bc`echo $var3var4=`echo "$var1 < $var2"|bc`echo $var4
查看消耗内存最多的前40个进程:
ps auxw|head -1;ps auxw|sort -rn -k4|head -40
自动任务做一个基础资源告警脚本
#!/bin/bashnow=`date -u -d"+8 hour" +'%Y-%m-%d %H:%M:%S'`#cpu使用阈值cpu_warn='85'#mem空闲阈值mem_warn='1000'#disk使用阈值disk_warn='90'#---cpuitem_cpu () {cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}'|cut -f 1 -d "."`cpu_use=`expr 100 - $cpu_idle`echo "$now 当前cpu使用率为 $cpu_use" >> /tmp/monitoring.logif [ $cpu_use -gt $cpu_warn ] then echo "cpu warning!!!" else echo "cpu ok!!!"fi}#---memitem_mem () {#MB为单位mem_free=`free -m | grep "Mem" | awk '{print $4+$6}'`echo "$now 当前内存剩余空间为 ${mem_free}MB" >> /tmp/monitoring.logif [ $mem_free -lt $mem_warn ] then echo "mem warning!!!" else echo "mem ok!!!" fi}#---diskitem_disk () {disk_use=`df -P | grep /dev/vda2 | grep -v -E '(tmp|boot)' | awk '{print $5}' | cut -f 1 -d "%"`echo "$now 当前磁盘使用率为 $disk_use" >> /tmp/monitoring.logif [ $disk_use -gt $disk_warn ] then echo "disk warning!!!" else echo "disk ok!!!" fi}item_cpuitem_memitem_disk利用free工具监控内存利用率,超过80报警并提取出占用内存最高的前十进程。
代码如下:
#!/bin/bash#total=$(free -m | sed -n '2p' | awk '{print $2}')used=$(free -m | sed -n '2p' | awk '{print $3}')free=$(free -m | sed -n '2p' | awk '{print $4}')shared=$(free -m | sed -n '2p' | awk '{print $5}')buff=$(free -m | sed -n '2p' | awk '{print $6}')cached=$(free -m | sed -n '2p' | awk '{print $7}')rate=`echo "scale=2;$used/$total" | bc | awk -F. '{print $2}'`echo -e "total\tused\tfree\tshared\tbuffer\tavailable"echo -e "${total}M\t${used}M\t${free}M\t${shared}M\t${buff}M\t${cached}M\nrate:${rate}%"if [ $rate -ge 80 ]then echo "Memory Warn" ps aux | grep -v USER | sort -rn -k4 | headfi利用df命令监控磁盘利用率,超过80报警。
df :显示磁盘分区上的可使用的磁盘空间。
-h 以更易读的方式显示;
-P 使用POSIX的输出格式。
#!/bin/bash#DEV=`df -hP | grep '^/dev/*' | cut -d' ' -f1 | sort`for I in $DEVdo dev=`df -Ph | grep $I | awk '{print $1}'`size=`df -Ph | grep $I | awk '{print $2}'`used=`df -Ph | grep $I | awk '{print $3}'`free=`df -Ph | grep $I | awk '{print $4}'`rate=`df -Ph | grep $I | awk '{print $5}'`mount=`df -Ph | grep $I | awk '{print $6}'`echo -e "$I:\tsize:$size\tused:$used\tfree:$free\trate:$rate\tmount:$mount"F=`echo $rate | awk -F% '{print $1}'`if [ $F -ge 80 ];then echo "$mount Warn" else echo "It's OK"fidone到此,相信大家对"bash脚本怎么监控cup/内存/磁盘使用率"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
内存
使用率
磁盘
监控
报警
脚本
大小
利用率
进程
阈值
最高
任务
内容
命令
基础
工具
整数
方式
时间
空间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全支出属于公共安全支出吗
艾滋病人数据库
为企业建立数据库
数据库查看表是否有锁
网络安全法与企业
spss里怎么删数据库
专业服务器搬迁报价表
catalog个人数据库
app国际服务器
不是数据库设计过程的步骤
网络安全教育课教案大全
奇炫欢享网络技术
服务器任务管理器新建任务
联想惠普服务器回收
青浦区创新软件开发常见问题
语音安全的服务器
ps4有网络连不上服务器
机关单位网络安全教育
三五互联网络安全
大专生毕业后学软件开发
数据库语句是什么意思
腾讯云服务器怎么上qq三国
乐亭软件开发答疑解惑
客户机与服务器模式示意图
搜索协调服务器中
上海交友软件开发报价
数据库中产品编号怎么写
腾讯云服务器无法通过密码登录
三亚软件开发工作室
杭州临安灵迅网络技术经营部