第一步:诊断问题(定位占用源)
-
查看整体磁盘使用
df -h # 检查各分区使用率,锁定满盘分区(如/dev/sda1)
-
深度分析目录占用
du -sh /* 2>/dev/null # 扫描根目录下各文件夹大小 du -h --max-depth=1 /var # 若/var满盘,深入其子目录 ncdu /home # 推荐安装ncdu工具,交互式可视化分析
第二步:针对性清理(附命令详解)
A. 日志文件清理(/var/log 常见问题)
journalctl --disk-usage # 检查Journal日志大小 journalctl --vacuum-size=200M # 限制日志为200MB find /var/log -type f -name "*.log" -size +100M -exec truncate -s 0 {} \; # 清空大于100MB的日志
B. 删除缓存与临时文件
sudo apt clean # Debian/Ubuntu清理软件包缓存 sudo yum clean all # CentOS/RHEL清理 rm -rf /tmp/* # 清理/tmp(注意确认无重要进程)
C. 查找并删除大文件(谨慎操作)
find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null # 查找>500MB文件``` #### **D. 清理旧内核(释放/boot空间)** ```bash dpkg --list | grep linux-image # Debian查看内核 sudo apt purge linux-image-5.4.0-XX-generic # 替换为旧版本号 # CentOS: sudo yum remove kernel-3.10.0-XXX
E. 处理用户文件(如/home爆满)
# 检查用户隐藏文件占用: du -sh /home/*/.cache /home/*/.local/share/Trash # 清空用户回收站: rm -rf ~/.local/share/Trash/*
第三步:高级维护(预防性措施)
-
自动化清理工具
- 安装
logrotate
配置日志轮转:sudo vim /etc/logrotate.conf # 调整压缩周期和保留份数
- 使用
cron
定期清理:
0 3 * * * root find /tmp -type f -mtime +7 -delete
- 安装
-
监控与告警
# 安装监控代理(如Prometheus Node Exporter) # 配置阈值告警(85%利用率触发)
-
分区扩容(终极方案)
sudo lvextend -L +20G /dev/mapper/ubuntu--vg-root # LVM扩容 sudo resize2fs /dev/mapper/ubuntu--vg-root # 扩展文件系统
关键注意事项
-
禁止直接删除未知文件
- 系统文件(如
/proc
,/sys
)不可删除 - 数据库文件需用专用命令清理(如MySQL:
PURGE BINARY LOGS
)
- 系统文件(如
-
预防数据丢失
rm -i 文件名 # 删除前确认 tar -czf backup.tar.gz 待删目录 # 先备份再操作
-
权限管理
- 生产环境使用
sudo
提权,避免root误操作 - 敏感目录设置
chattr +i
防误删
- 生产环境使用
引用说明
- Linux文件系统标准参考:Filesystem Hierarchy Standard
- 命令手册页:
man df
,man du
,man find
- 系统维护指南:Linux Documentation Project
重要提示:清理操作前务必确认文件用途!误删系统文件可能导致服务不可用,建议首次操作在测试环境演练,或由专业运维人员执行,定期备份(如使用
rsync
或BorgBackup
)是数据安全的核心保障。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5939.html