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在同一目录,如果不在确保在脚本内程序能选中目标测试文件

相关推荐
派小心.2 分钟前
多端数据分析平台的漏斗可以跨端搭建吗?5 步搭出跨端转化漏斗
大数据·运维·服务器·前端·数据分析
芷栀夏6 分钟前
极空间部署Photopea:Docker运行、网页修图与多设备使用
运维·docker·容器
见闻小天地11 分钟前
数据中心柴发出口保护怎么选?Emax 与 Tmax XT 的定位与分工
大数据·运维·人工智能·业界资讯
迈威通信25 分钟前
迈威 MISCOM8212GP-4XGF-8GTPoE90-DC48 接入层实践:高密度 PoE++ 与万兆上行的整合方案
运维·网络·信息与通信
小小的木头人26 分钟前
CentOS 7.9 离线安装 NVIDIA Container Toolkit:1.14.0 与 1.20.1 两种版本方案
linux·运维·centos
哭哭啼30 分钟前
Linux 资源紧缺模拟:CPU、内存、磁盘与文件描述符压力测试
linux·运维·压力测试
酒神dnspup41 分钟前
多地区网站可用性监控怎么做?DNSPup 从基线到告警的完整实战
运维·ios·云计算·iphone·dns·网络监控
等我调个Bug1 小时前
Linux基本指令
linux·服务器
在角落发呆9 小时前
工具配置备份步骤:从手动备份到自动化方案
运维·windows·自动化
_upupup10 小时前
Linux的调试工具——gdb/cgdb
linux·服务器