Linux清理技巧:监控磁盘使用
导读:Linux 磁盘使用监控与清理实用指南 一 快速定位占用 查看各挂载点使用率与剩余空间,同时关注是否inode 耗尽:df -h、df -i。当某个分区使用率接近或超过**80%**时建议优先排查。 定位“谁在吃空间”:从根目录逐级汇总并...
Linux 磁盘使用监控与清理实用指南
一 快速定位占用
- 查看各挂载点使用率与剩余空间,同时关注是否inode 耗尽:
df -h、df -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 --disk或nmon查看吞吐与负载,判断是“空间不足”还是“写入拥塞”。 - 图形化与平台化:桌面环境可用 GNOME Disk Usage Analyzer(baobab);平台侧建议接入 Nagios/Zabbix/Cacti 做可视化与阈值告警。
以上做法覆盖“巡检—阈值—通知—趋势—可视化”的完整闭环,能显著降低突发磁盘满的风险。
三 常见大占用清理清单
- 包管理器缓存
- Debian/Ubuntu:
sudo apt-get clean、sudo apt-get autoclean、sudo apt-get autoremove - RHEL/CentOS:
sudo yum clean all、sudo yum autoremove - Fedora:
sudo dnf clean all
- Debian/Ubuntu:
- 系统日志与 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 -af、docker 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>以快速释放空间并保留文件句柄。
以上清理项安全、可回滚(除直接删除外),建议先在测试环境验证并按需纳入定时任务。
- 查找大于 100MB 的文件:
四 自动化脚本模板
- 阈值告警脚本(示例阈值 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
该模板简洁可扩展,可结合企业通知网关实现统一告警。
- 每 30 分钟检查一次:
五 进阶与容量规划
- 容量趋势与性能联动:长期留存
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
