bash脚本怎么监控cup/内存/磁盘使用率
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容主要讲解"bash脚本怎么监控cup/内存/磁盘使用率",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"bash脚本怎么监控cup/内存/磁盘使用率"
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
互联网络安全监督员
国泰安的数据库
支付宝 数据库
在sql怎么创建数据库
梦幻西游手游新区限制服务器等级
ctf网络安全大赛下载电脑版
黑龙江开票软件服务器地址
新昌县嘉信网络技术服务部
软件开发收益怎样
网络安全实验室建设图片
数据库中候选键的求解过程
信息安全及网络技术报告
像素工厂服务器ip地址列表
拘留 dna数据库
发票信息保存数据库失败
mysql数据库类
河南大数据服务器机箱厂
数据中心服务器管理口
怎么给虚拟机服务器分区
广州麟米网络技术有限公司
松江区常规软件开发服务要求
软件开发时间确定
和平精英需不需要谷歌服务器框架
服务器 解决方案
医院里面的无线网络安全吗
ctf网络安全大赛下载电脑版
数据库安全性管理办法
win12服务器安装环境
jiaaz软件开发
数据库重启后job查不到了