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

相关推荐
Jimmy_jimi1 分钟前
利用nginx代理完成url重定位
运维·nginx
liuyicenysabel32 分钟前
多服务上线日记三:
运维·服务器·笔记·学习
吠品2 小时前
Wine 在 Linux 上运行 Windows 软件完整指南
java·linux·服务器
一只鹿鹿鹿2 小时前
大数据中心安全系统解决方案(Word文件)
大数据·运维·物联网·安全·政务
深念Y4 小时前
从 Windows 迁移到 Linux 开发环境的记录
linux·windows·链接·bun·ram·imdisk
AuTumn-L4 小时前
使用 SSH 密钥认证实现安全免密登录
服务器·安全·ssh
领创工作室4 小时前
GitHub Workflows 全面解析:从核心概念到开源实现
运维·github
吕海洋5 小时前
目前可用的docker源2026.08
运维·docker·容器
知无不研5 小时前
Linux I/O复用之epoll
linux·服务器·epoll·socket编程
dogstarhuang6 小时前
OpenAI GPT-5.6 降价后如何重算 API 账单?多模型路由与成本治理实战
服务器·网络·人工智能·大模型·api·ai应用开发·接口管理