Ubuntu清理磁盘空间
Contents
清理 Linux 服务器磁盘空间时需要谨慎,避免误删系统关键文件。建议按以下步骤进行。
第一步:诊断空间占用
查看整体磁盘使用情况
|
|
重点关注 Use%(使用率)和 Mounted on(挂载点,通常是 / 或 /home)。如果 /dev/vda1 或 /dev/sda1 使用率超过 90%,就需要清理了。
分析目录占用
进入根目录,使用 du 命令查看各一级目录大小:
|
|
这会列出 /var、/usr、/home 等目录的占用情况。通常占用较大的目录有:
/var:日志和缓存/home:用户数据/opt:安装的软件
找到占用最大的目录后,可以继续深入查看:
|
|
第二步:按优先级清理
1. 清理软件包缓存
|
|
2. 清理系统日志
如果 /var/log 占用很大,说明日志未做过期轮转。
查看日志大小
|
|
清理 journal 日志(systemd 系统)
|
|
手动清理旧日志文件
进入日志目录,检查是否有体积异常大的 .log 文件。
注意:不要直接删除正在被写入的日志文件,否则会导致服务异常。
|
|
3. 清理 Docker
Docker 的镜像、容器和卷会占用大量空间,且容易被遗忘。
一键清理
|
|
删除停止的容器、未使用的网络、悬空镜像。如果想删除所有未使用的镜像:
|
|
注意:删除镜像后,下次启动容器可能需要重新下载。
手动清理卷
|
|
4. 查找并删除大文件
如果大致知道文件位置,可以用 find 命令精确定位:
|
|
5. 清理缓存目录
清理 /tmp 临时文件
系统重启通常会自动清理,也可以手动检查:
|
|
清理用户缓存
如果系统有多个用户,~/.cache 目录可能很大:
|
|
高危雷区
清理过程中务必注意以下事项,否则可能导致系统崩溃。
禁止删除系统核心文件
- 不要删除
/bin、/sbin、/lib、/usr目录下的任何文件。这些是系统核心程序,删除后系统将无法启动。
不要操作虚拟文件系统
- 不要在
/proc、/dev、/sys目录下进行任何操作。这些是虚拟文件系统,不是真实硬盘空间。
正确处理正在写入的文件
- 不要强行删除正在被进程写入的文件。如果你用
rm删除了一个正在被写入的日志文件(如/var/log/syslog),磁盘空间不会立即释放,直到该服务重启。
正确做法:用
echo > filename清空文件内容,而不是删除文件本身。
检查已删除但仍占用空间的文件
|
|
如果发现这类文件占用巨大空间,需要重启对应的服务或进程来释放空间。
拓展与后续学习建议
- 日志管理策略:学习配置
logrotate自动轮转日志,设置合理的保留周期 - 磁盘配额:学习使用
quota命令为用户或目录设置磁盘使用限制 - LVM 逻辑卷管理:掌握 LVM 的创建、扩容、缩减操作,便于动态调整磁盘空间
- 监控告警:配置磁盘空间监控脚本或使用工具(如
ncdu、baobab)及时发现异常 - 容器运维:深入学习 Docker 的存储驱动和清理策略,避免镜像膨胀
- 定期维护计划:建立周期性清理任务,保持系统健康运行