点击下方名片,设为星标!

当磁盘空间出现问题时,系统通常会表现出以下症状:
排查磁盘空间问题遵循"先整体后局部"的原则:
步骤 1:查看磁盘整体使用情况
命令:df -h
正常输出示例:Filesystem Size Used Avail Use% Mounted on/dev/sda1 50G 15G 33G 32% //dev/sdb1 100G 20G 80G 20% /data
异常输出示例(磁盘已满):Filesystem Size Used Avail Use% Mounted on/dev/sda1 50G 50G 0 100% /
步骤 2:定位占用空间的大目录
命令:du -sh /* 2>/dev/null | sort -rh | head -20
输出示例:30G /var15G /usr8G /home5G /opt
步骤 3:查找大文件
命令:find / -type f -size +500M -exec ls -lh {} ; 2>/dev/null
输出示例:-rw-r----- 1 root root 2.1G Feb 27 14:30 /var/log/nginx/access.log-rw------- 1 root root 1.5G Feb 27 10:15 /var/lib/mysql/ibdata1
步骤 4:检查已删除但仍被占用的文件
命令:lsof | grep deleted
异常输出示例:nginx 1234 root 3w REG 8,1 5368709120 /var/log/nginx/error.log (deleted)
解决方法:重启占用进程或清空文件
步骤 5:清理常见"空间杀手"
清理包缓存:apt clean 或 yum clean all清理旧日志:journalctl --vacuum-time=7d清理临时文件:rm -rf /tmp/*清理 Docker:docker system prune -a
主动监测,避免事后处理
使用 cron + 脚本监控:
#!/bin/bashTHRESHOLD=80USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')if [ $USAGE -gt $THRESHOLD ]; thenecho "警告:根分区使用率已达 ${USAGE}%" | mail -s "磁盘告警" admin@example.comfi
添加到定时任务(每 30 分钟检查一次):echo "*/30 * * * * /path/to/disk_alert.sh" | crontab -确保 logrotate 正常运行:cat /etc/logrotate.conflogrotate -d /etc/logrotate.conf
分区规划时预留 10-15% 的冗余对关键目录设置独立分区(/var、/home、/tmp)使用 LVM 方便后期扩容
echo "= 磁盘使用情况 ="df -hecho ""echo "= 大文件 TOP 10 ="find / -type f -size +100M -exec ls -lh {} ; 2>/dev/null | head -10echo ""echo "= 已删除但未释放的文件 ="lsof | grep deleted | head -5
总结
磁盘空间问题看似紧急,实则有章可循。掌握 df、du、find、lsof 这几个核心命令,配合定期监控和合理的空间规划,就能将故障消灭在萌芽状态。
记住:预防胜于治疗,监控优于抢修。
=========== 到此结束 ==========
//往期推荐//
Alist+RaiDrive:Windows环境下无限扩容本地硬盘
如果觉得本次分享对你有所帮助的话,希望点击“在看”给予鼓励,谢谢!
敬请关注公众号:运维来点料