Shell脚本 CPU,内存,磁盘占用率检测

编程入门 行业动态 更新时间:2024-10-22 16:38:17

Shell脚本 CPU,内存,<a href=https://www.elefans.com/category/jswz/34/1767753.html style=磁盘占用率检测"/>

Shell脚本 CPU,内存,磁盘占用率检测

CPU:运算资源占用

内存:RAM类介质

磁盘:ROM类介质

一、CPU

#!/bin/bash# 设置阈值,当CPU占用超过该阈值时进行输出提示
threshold=80while true
do# 使用top命令获取CPU占用信息,并使用grep和awk筛选和解析输出结果cpu_usage=$(top -bn 1 | grep "guideman" | awk '{print $7}')# 将浮点数转换为整数,以便进行比较cpu_usage=${cpu_usage%.*}echo "Current CPU Usage: ${cpu_usage}%"# 检查CPU占用是否超过阈值if [ $cpu_usage -gt $threshold ]thenecho "CPU Usage Exceeded Threshold!"# 在此处添加其他操作或通知机制fi# 定义间隔时间,以控制检查频率sleep 5
done

guideman:检测对象

$7:从左往右,打印第7个参数

        以上代码中,threshold变量定义了设定的阈值,如果CPU占用超过该阈值,将输出警告信息。top命令用于获取系统的CPU占用情况,grepawk用于筛选和解析输出结果。sleep命令定义了循环的间隔时间,这里设置为5秒。

执行结果:

二、内存

free 命令来获取当前系统的内存占用情况,并使用 awk 命令来提取需要的信息。

#!/bin/bash# 设置阈值,当内存占用超过该阈值时发送警告
threshold=80while true; do# 使用 free 命令获取内存占用情况,并使用 awk 提取第三行的数据mem_info=$(free | awk 'NR==3{print $3/$2 * 100}')# 比较内存占用情况和阈值if (( $(echo "$mem_info > $threshold" | bc -l) )); thenecho "内存占用超过阈值($threshold%),当前占用为:$mem_info%"# 在此处添加发送警告的代码fi# 等待一段时间后再次监控sleep 5
done
#NR==2表示打印第二行参数/mnt/test_app # free | awk 'NR==2{print $3/$2 * 100}'
31.2288
/mnt/test_app # 

三、磁盘

        使用df命令来获取磁盘占用情况

#!/bin/bash# 设置阈值,当磁盘使用率超过该阈值时发送警报
THRESHOLD=90# 获取磁盘使用率,并提取百分比部分
usage=$(df -h | awk '$NF=="/"{printf "%s\n", $5}' | cut -d'%' -f1)# 检查磁盘使用率是否超过阈值
if [ $usage -gt $THRESHOLD ]; thenecho "磁盘使用率超过阈值,请及时清理!"
fi

将上述代码保存到一个文件(例如check_disk_usage.sh),然后通过运行 bash check_disk_usage.sh 或者 ./check_disk_usage.sh 来执行脚本。

/mnt/test_app # df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               248.0M    158.1M     84.7M  65% /
tmpfs                   225.8M      4.0K    225.8M   0% /tmp
tmpfs                   225.8M         0    225.8M   0% /dev
tmpfs                   225.8M      4.0K    225.8M   0% /dev/shm
/dev/mmcblk0p2          488.0K     14.0K    439.0K   3% /factory
/dev/mmcblk0p8          495.9M    384.2M    101.5M  79% /usrdata
df: /mnt/udisk: No such file or directory
df: /mnt/zc12a_data: No such file or directory
192.168.1.101:/home/guide/kuxinwei/project/195.8G     82.1G    103.7G  44% /mnt

请注意,即使这个脚本可以监控磁盘使用情况,但它并不会持续监控。你可能需要使用定时任务工具(如cron)来定期运行这个脚本,以便实现长期监控。
 

更多推荐

Shell脚本 CPU,内存,磁盘占用率检测

本文发布于:2023-11-14 14:30:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1587806.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:磁盘   脚本   内存   占用率   Shell

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!