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

相关推荐
GeW21 分钟前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库
by2099932 分钟前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
螺丝钉tina1 小时前
[Playwright][08] Upload 模块自动化:如何设计真实业务测试用例?
运维·自动化·测试用例
迪菲赫尔曼1 小时前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目
运维·服务器·开发语言·人工智能·python·yolo·目标检测
cq林志炫1 小时前
两个Linux服务器之间同步文件
linux·运维·服务器
yyuuuzz2 小时前
云服务器安全组规则优先级的机制记录
运维·服务器·网络·安全·阿里云·aws
KaiwuDB2 小时前
KaiwuDB 运维实战06:数据库备份与恢复:从理论到实战
运维·数据库·时序数据库·kaiwudb
无人生还别怕2 小时前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
智购科技自动售货机厂家2 小时前
让AI经营自动售货机:从Project Vend看工具权限与业务规则~YH
大数据·服务器·单片机·嵌入式硬件·深度学习
jnrjian2 小时前
delete file shell 让 AI 写脚本
服务器·开发语言