shell编程实际应用----磁盘空间监控与告警

目录

磁盘空间监控与告警

测试数据:

自动化脚本内容


磁盘空间监控与告警

描述:分析df命令输出,对使用率超过80%的分区发出告警。


测试数据:

保存为 df_output.txt

bash 复制代码
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1       20480000  6144000  14336000  30% /
/dev/sda2       51200000 38912000  12288000  76% /home
/dev/sda3       30720000 21504000   9216000  70% /var
/dev/sdb1       10240000  7680000   2560000  75% /data
tmpfs            2048000   102400   1945600   5% /run
/dev/sdc1       40960000 28672000  12288000  70% /backup

自动化脚本内容

保存为testDf文件

bash 复制代码
#!/bin/bash

echo "=== 磁盘空间监控与告警 ==="
echo "正在检查磁盘使用率超过80%的分区..."
echo

# 阈值设置为80%
threshold=80

# 使用awk处理df输出
echo "检查结果:"
echo "文件系统       使用率  挂载点       状态"
echo "----------------------------------------"

#也可以写df -h查本机的使用情况
cat df_output.txt | awk -v thresh = "$thresholt" '
NR==1 {next} #跳过第一行
{
    #提取使用百分比%
    use_percent=substr($5,1,length($5)-1)
    #如果使用率超过阈值
    if(use_percent + 0 > thresh){
        # 设置告警标志和颜色(在终端中显示红色)
        status = "⚠️  警告"
        printf "\033[31m%-15s %-6s %-12s %-10s\033[0m\n", $1, $5, $6, status
        alarm=1
    }else {
        status = "✓  正常"    
        printf "%-15s %-6s %-12s %-10s\n", $1, $5, $6, status
    }
END {
    if(alarm){
         print "\n\033[31m发现磁盘使用率超过" thresh "%的分区,请及时清理!\033[0m"
        }else{
         print "\n\033[32m所有磁盘分区使用率正常。\033[0m"
        }

    }
}

注:确保脚本文件和testDf在同一目录,如果不在确保在脚本内程序能选中目标测试文件

相关推荐
深紫色的三北六号7 小时前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash11 小时前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI21 小时前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行2 天前
Linux和window共享文件夹
linux
Sinclair2 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
木心月转码ing2 天前
WSL+Cpp开发环境配置
linux
Rockbean3 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
蝎子莱莱爱打怪3 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
茶杯梦轩3 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
崔小汤呀3 天前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端