首页主机资讯Linux清理技巧:监控磁盘使用

Linux清理技巧:监控磁盘使用

时间2025-11-21 23:32:04发布访客分类主机资讯浏览753
导读:Linux 磁盘使用监控与清理实用指南 一 快速定位占用 查看各挂载点使用率与剩余空间,同时关注是否inode 耗尽:df -h、df -i。当某个分区使用率接近或超过**80%**时建议优先排查。 定位“谁在吃空间”:从根目录逐级汇总并...

Linux 磁盘使用监控与清理实用指南

一 快速定位占用

  • 查看各挂载点使用率与剩余空间,同时关注是否inode 耗尽df -hdf -i。当某个分区使用率接近或超过**80%**时建议优先排查。
  • 定位“谁在吃空间”:从根目录逐级汇总并按大小排序(排除跨文件系统干扰):du -xh / | sort -rh | head -n 20;也可先粗查各顶级目录:du -sh /* 2> /dev/null
  • 交互式分析大目录:ncdu /path,按占用排序、可进入子目录快速定位大文件/目录。
  • 若空间未满但写入失败,优先检查 inode:df -i
    以上命令组合可在分钟级定位问题根源,适合作为日常巡检与应急排查的第一步。

二 持续监控与告警

  • 定期检查与阈值预警:为不同挂载点设置不同阈值(如关键业务分区更严格),通过脚本解析 df -H 输出,超过阈值触发通知(邮件、企业微信、Slack 等)。
  • 自动化巡检与留存:用 cron 定期执行并记录历史,例如每日保存 df -h 报表:0 0 * * * df -h > /var/log/disk_usage_$(date +\%Y-\%m-\%d).log;长期留存便于趋势分析与容量规划。
  • 性能与 I/O 关联:用 iotop 观察进程级磁盘读写,配合 dstat --disknmon 查看吞吐与负载,判断是“空间不足”还是“写入拥塞”。
  • 图形化与平台化:桌面环境可用 GNOME Disk Usage Analyzer(baobab);平台侧建议接入 Nagios/Zabbix/Cacti 做可视化与阈值告警。
    以上做法覆盖“巡检—阈值—通知—趋势—可视化”的完整闭环,能显著降低突发磁盘满的风险。

三 常见大占用清理清单

  • 包管理器缓存
    • Debian/Ubuntu:sudo apt-get cleansudo apt-get autocleansudo apt-get autoremove
    • RHEL/CentOS:sudo yum clean allsudo yum autoremove
    • Fedora:sudo dnf clean all
  • 系统日志与 journal
    • 按时间保留:sudo journalctl --vacuum-time=7d(保留最近 7 天)
    • 按大小保留:sudo journalctl --vacuum-size=100M
    • 旧轮转日志可清理:sudo rm -f /var/log/*.gz /var/log/*.1(谨慎操作,避免误删正在写入的日志)
  • 临时文件与缓存
    • 清理临时目录:sudo rm -rf /tmp/*(确保不影响运行中服务)
    • 释放页面/目录项/inode 缓存(仅在必要时、业务低峰执行):sync & & echo 3 | sudo tee /proc/sys/vm/drop_caches
  • Docker 环境
    • 清理无用数据:docker system prune -afdocker volume prune -f
  • 大文件快速排查与处理
    • 查找大于 100MB 的文件:find / -type f -size +100M -exec ls -lh { } \; 2> /dev/null | sort -k 5 -rh | head -n 20
    • 确认无用后再删除;对日志类文件可优先 truncate -s 0 < file> 以快速释放空间并保留文件句柄。
      以上清理项安全、可回滚(除直接删除外),建议先在测试环境验证并按需纳入定时任务。

四 自动化脚本模板

  • 阈值告警脚本(示例阈值 80%,按需调整):
#!/usr/bin/env bash
ALERT=80
LOGFILE="/var/log/disk_alert.log"

df -H | awk -v alert="$ALERT" '
NR>
    1 &
    &
     !/^Filesystem/ &
    &
 !/tmpfs|cdrom/ {
    
  gsub(/%/,"",$5)
  if ($5 >
= alert) {

    msg="[$(date)] 警告: 挂载点 $6 使用率 ${
$5}
%"
    echo "$msg" | tee -a "$LOGFILE"
    # 这里可替换为你的通知方式:mail/slack/企业微信等
    # echo "$msg" | mail -s "磁盘告警" admin@example.com
  }

}
    ' 
  • 定时执行(crontab):
    • 30 分钟检查一次:*/30 * * * * /usr/local/bin/check_disk.sh
    • 每日归档 df -h 报表:0 0 * * * df -h > /var/log/disk_usage_$(date +\%F).log
      该模板简洁可扩展,可结合企业通知网关实现统一告警。

五 进阶与容量规划

  • 容量趋势与性能联动:长期留存 df/du 报表,结合 nmon/dstat 观察读写趋势与峰值时段,提前规划扩容或数据迁移。
  • 存储健康与预警:使用 smartmontools 检查磁盘健康状态,例如:sudo smartctl -H /dev/sda,对异常尽早更换。
  • 文件系统与挂载优化:对不敏感场景可在 /etc/fstab 中为对应分区添加 noatime/nodiratime 以减少元数据写入,降低 I/O 压力(修改前请评估业务影响)。
  • 扩展方案:清理后仍不足时,考虑挂载新磁盘、扩容 LVM 卷或在虚拟化平台扩展虚拟磁盘后调整分区/文件系统大小。
    这些做法有助于从“监控—分析—优化—扩容”四个维度建立长期稳定的存储治理体系。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux清理技巧:监控磁盘使用
本文地址: https://pptw.com/jishu/753842.html
如何通过Linux清理提高效率 Debian系统MongoDB备份策略

游客 回复需填写必要信息