bash脚本怎么监控cup/内存/磁盘使用率
发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,本篇内容主要讲解"bash脚本怎么监控cup/内存/磁盘使用率",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"bash脚本怎么监控cup/内存/磁盘使用率"
千家信息网最后更新 2024年12月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安全错误
数据库的锁怎样保障安全
互苗网络安全
怎样还原数据库
人大代表建议病历数据库
软件开发两类方法是什么
服务器与应用系统管理
浪潮英信服务器装WIN7蓝屏
政企网络安全运行模型图解析
软件开发大数据考什么证书
如何修复服务器
网络安全主题教育活动标语
sql 数据库删除关联表
山西信息化软件开发补贴
如何设计数据库的表
网络安全3个重要
erp系统迁移数据库
广东九合网络技术有限公司
基岩版服务器怎么上传addon
苹果邮件怎么增加pop3服务器
广播服务器授权
消防站制作基础档案数据库
无线网络技术的综合题
网络安全周 金融日
互联网科技龙头
网络安全具有4个方面的特征
军营网络安全技巧
用友u8找不到服务器
天刀手游下个服务器什么时候开
福建商业软件开发零售价
上传认证显示服务器异常什么意思
达梦数据库获取指定字符串位置