当前位置:   article > 正文

Shell脚本 CPU,内存,磁盘占用率检测_shell 实时监控本机内存和硬盘剩余空间

shell 实时监控本机内存和硬盘剩余空间

CPU:运算资源占用

内存:RAM类介质

磁盘:ROM类介质

一、CPU

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

guideman:检测对象

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

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

执行结果:

二、内存

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

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

三、磁盘

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

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/154193
推荐阅读
相关标签
  

闽ICP备14008679号