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

相关推荐
70asunflower5 小时前
Emulation,Simulation,Virtualization,Imitation 的区别?
linux·docker
聆风吟º5 小时前
CANN开源项目实战指南:使用oam-tools构建自动化故障诊断与运维可观测性体系
运维·开源·自动化·cann
神梦流5 小时前
ops-math 算子库的扩展能力:高精度与复数运算的硬件映射策略
服务器·数据库
NPE~5 小时前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化
神梦流5 小时前
GE 引擎的内存优化终局:静态生命周期分析指导下的内存分配与复用策略
linux·运维·服务器
凡人叶枫5 小时前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++
wdfk_prog6 小时前
[Linux]学习笔记系列 -- [drivers][input]serio
linux·笔记·学习
xuhe26 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
Lsir10110_6 小时前
【Linux】进程信号(下半)
linux·运维·服务器
skywalk81636 小时前
unbound dns解析出现问题,寻求解决之道
运维·服务器·dns·unbound