广告图片
TOP云-靠谱的企业级公有云服务平台

云服务器、物理服务器、云安全、SSL证书限时3折抢购!

双路E5-2640V4(40核)64G内存480G SSD硬盘30M独享带宽物理机仅需368元;香港铂金云服务器2H/2G/15M仅需19.8元/月;4H/4G/25M仅需29.8元/月,

TOP云-靠谱的企业级公有云服务平台:双路E5-2640V4(40核)64G内存480G SSD硬盘30M独享带宽物理机仅需368元;香港铂金云服务器2H/2G/15M仅需19.8元/月;4H/4G/25M仅需29.8元/月,云服务器、物理服务器、云安全、SSL证书限时3折抢购!点击这里立即抢购! 展开广告

TOP云物理服务器特惠,CPU可选双路E5-2660(32核)、双路E5-2680v2(40核)、双路E5-2696/98 V4(88核)、双路Gold 6138(80核)、双路Platinum 8173(112核);

内存从32G-128G可选,带宽有单线、多线独享20M-200M,价格低至368元。

购买链接:https://c.topyun.vip/cart?fid=1&gid=236

服务器磁盘空间不足是运维人员最常面临的挑战之一——日志文件堆积、临时文件未清理、数据库备份未轮转,都可能导致磁盘使用率飙升至100%,进而引发服务崩溃、数据写入失败等严重问题。手动清理磁盘虽能应急,但无法应对突发流量或长期未维护的系统;而通过脚本自动化监控与清理,可在磁盘使用率超过阈值时立即执行预设清理策略,将风险扼杀在萌芽状态。本文将分享一套完整的磁盘告警自动清理脚本方案,涵盖监控逻辑、清理策略、安全校验及TOP云物理服务器的自动化运维支持。

一、磁盘使用率告警的核心场景与风险

1. 哪些场景容易触发磁盘告警?

  • 日志文件爆炸式增长
    • 应用日志(如Nginx访问日志、Java应用日志)、系统日志(/var/log/messages)未配置日志轮转(logrotate),单文件体积可能超过GB级别。
  • 临时文件未清理
    • 缓存目录(如/tmp/var/tmp)、会话目录(如PHP的/var/lib/php/sessions)长期堆积,占用大量空间。
  • 数据库备份未轮转
    • MySQL的mysqldump备份、MongoDB的mongodump备份未按日期归档或删除旧文件,导致备份目录膨胀。
  • 容器/虚拟机镜像堆积
    • Docker的/var/lib/docker/overlay2、KVM的镜像存储目录未定期清理无用镜像或快照。

2. 磁盘满导致的典型故障

  • 服务不可用
    • 磁盘空间不足时,Nginx无法写入访问日志、MySQL无法执行INSERT操作、系统无法创建新的进程文件(/var/run目录满)。
  • 数据丢失风险
    • /var/lib/mysql等数据目录空间不足,可能导致事务回滚失败或表损坏。
  • 监控失效
    • 磁盘满时,监控代理(如Zabbix Agent、Prometheus Node Exporter)可能无法写入数据,导致告警系统“失明”。

二、磁盘自动清理脚本的设计原则

1. 脚本需满足的核心需求

  • 实时监控与阈值告警
    • 定期检查磁盘使用率(如每5分钟),当使用率超过85%(可配置)时触发清理。
  • 安全清理策略
    • 优先清理非关键文件(如日志、临时文件),避免误删数据库或配置文件。
  • 日志记录与通知
    • 记录每次清理的操作(删除的文件、释放的空间),并通过邮件/短信通知运维人员。
  • 防误删机制
    • 跳过系统关键目录(如/etc/boot)、正在写入的文件及白名单中的文件。

2. 脚本架构概览

三、完整脚本实现(Bash示例)

Bash

#!/bin/bash

# 配置参数
THRESHOLD=85                  # 磁盘使用率阈值(%)
MOUNT_POINT="/"               # 监控的挂载点(如/、/data)
LOG_FILE="/var/log/disk_clean.log"  # 清理日志路径
EMAIL="admin@example.com"      # 告警接收邮箱
WHITELIST=("/etc" "/boot" "/var/lib/mysql")  # 白名单目录(不清理)

# 获取磁盘使用率(百分比)
usage=$(df -h "$MOUNT_POINT" | awk 'NR==2 {print $5}' | tr -d '%')

# 检查是否超过阈值
if [ "$usage" -gt "$THRESHOLD" ]; then
    echo "[$(date)] WARNING: Disk usage on $MOUNT_POINT is $usage% (Threshold: $THRESHOLD%)" >> "$LOG_FILE"

    # 清理策略1:删除旧日志文件(保留最近7天)
    find /var/log -type f -name "*.log" -mtime +7 -exec rm -f {} \; 2>> "$LOG_FILE"

    # 清理策略2:清空临时文件(跳过正在使用的文件)
    find /tmp -type f -mtime +1 -exec sh -c '! fuser -s {} 2>/dev/null' \; -delete 2>> "$LOG_FILE"

    # 清理策略3:删除Docker无用镜像(需安装docker)
    if command -v docker &> /dev/null; then
        docker system prune -af --volumes 2>> "$LOG_FILE"
    fi

    # 防误删:跳过白名单目录
    for dir in "${WHITELIST[@]}"; do
        find "$dir" -prune -o -type f -delete 2>> "$LOG_FILE"
    done

    # 重新计算释放后的使用率
    new_usage=$(df -h "$MOUNT_POINT" | awk 'NR==2 {print $5}' | tr -d '%')
    echo "[$(date)] Cleaned: Original usage $usage% -> New usage $new_usage%" >> "$LOG_FILE"

    # 发送告警邮件
    echo "Disk cleanup triggered on $MOUNT_POINT. Usage reduced from $usage% to $new_%." | mail -s "Disk Usage Alert: Cleanup Completed" "$EMAIL"
else
    echo "[$(date)] Disk usage on $MOUNT_POINT is $usage% (OK)" >> "$LOG_FILE"
fi

四、脚本部署与优化建议

1. 部署方式

  • Crontab定时任务
    Bash

    # 每5分钟检查一次
    */5 * * * * /path/to/disk_clean.sh
  • Systemd服务(长期运行)
    • 创建/etc/systemd/system/disk-clean.service,设置ExecStart为脚本路径,并启用Watchdog监控脚本状态。

2. 优化方向

  • 多磁盘监控
    • 扩展脚本支持多个挂载点(如//data),循环检查每个磁盘的使用率。
  • 动态阈值
    • 根据业务高峰时段(如白天)和低峰时段(如夜间)设置不同阈值,避免误清理。
  • 集成云存储
    • 当本地磁盘不足时,自动将日志/备份文件上传至TOP云对象存储(了解云存储服务),而非直接删除。

五、TOP云物理服务器:自动化运维的终极方案

1. 内置磁盘监控与清理工具

  • 智能告警系统
    • TOP云控制台实时显示各磁盘使用率,当超过阈值时自动触发告警(邮件/短信/Webhook),并推荐清理策略(如“清理日志文件”或“扩展磁盘”)。
  • 自动化清理任务
    • 用户可在控制台配置定时清理规则(如“每天凌晨3点清理/var/log下7天前的日志”),系统自动执行并记录操作日志。

2. 弹性扩展能力避免清理

  • 在线磁盘扩容
  • 分布式存储支持
    • 针对大数据、数据库等高IO场景,推荐使用TOP云分布式存储(如Ceph、GlusterFS),通过横向扩展存储节点避免单盘压力。

3. 安全审计与合规性

  • 操作日志全记录
    • 所有清理操作(脚本执行或控制台手动清理)均记录审计日志,满足等保2.0、ISO27001等合规要求。
  • 文件删除可追溯
    • 结合TOP云日志服务,可查询被删除文件的原始路径、删除时间及操作人,便于事故回溯。

六、脚本使用注意事项

  1. 测试环境验证
    • 先在测试环境运行脚本,确认清理策略不会误删关键文件。
  2. 关键业务谨慎清理
    • 若服务器运行金融、医疗等关键业务,建议仅清理日志和临时文件,避免清理应用生成的缓存文件(可能影响性能)。
  3. 备份重要数据
    • 清理前可通过tarrsync备份重要目录(如/var/lib/docker),防止意外丢失。

服务器磁盘空间管理是运维的基础工作,而自动化脚本可将重复性操作转化为可预测、可控制的标准化流程。TOP云物理服务器通过“监控-告警-清理-扩容”全链路自动化,让磁盘管理更简单、更安全!

👉 立即购买TOP云物理服务器,享受自动化磁盘运维服务

阿, 信