如何在Linux中进行磁盘空间清理
导读:1. 检查磁盘使用情况,定位大空间占用 在进行磁盘清理前,需先明确哪些分区或目录占用了大量空间。常用命令如下: df -h:查看各挂载点的磁盘使用率,重点关注“Use%”接近或达到100%的分区(如根分区/),定位需要清理的分区。 du...
1. 检查磁盘使用情况,定位大空间占用
在进行磁盘清理前,需先明确哪些分区或目录占用了大量空间。常用命令如下:
df -h
:查看各挂载点的磁盘使用率,重点关注“Use%”接近或达到100%的分区(如根分区/
),定位需要清理的分区。du -sh /* 2> /dev/null | sort -rh | head -10
:列出根目录下各子目录的大小(按降序排列),显示前10个最大占用者,快速定位大目录。du -ah --max-depth=1 | sort -rh | head -n 10
:查看当前目录及其直接子目录的大小,更精准地定位大文件夹。
2. 清理系统日志文件
系统日志(主要存放在/var/log
目录)长期积累会占用大量空间,尤其是服务异常时会产生巨量日志。清理方法:
- 清除旧journal日志:保留最近7天的日志,删除更早的日志数据,命令:
sudo journalctl --vacuum-time=7d
。 - 清空大型日志文件:使用
truncate
命令将特定日志文件(如syslog
)内容截断为0,不删除文件句柄,命令:sudo truncate -s 0 /var/log/syslog
。 - 删除旧压缩日志:手动移除
/var/log
目录下过期的压缩日志文件(如.gz
、.old
后缀),命令:sudo rm -f /var/log/*.gz /var/log/*.old
。
3. 清除包管理器缓存
包管理器(如APT、DNF)安装软件时会缓存.deb
(Debian/Ubuntu)或.rpm
(RHEL/CentOS)包文件,长期累积会占用可观空间。清理方法:
- Debian/Ubuntu系统:使用
apt clean
命令清理APT缓存(删除/var/cache/apt/archives
目录下的所有.deb
文件);使用apt autoremove --purge
命令移除不再需要的依赖包和配置文件。 - RHEL/CentOS/Fedora系统:使用
dnf clean all
命令清理DNF缓存(删除/var/cache/dnf
目录下的所有缓存文件);使用dnf autoremove
命令移除无用依赖。
4. 处理被进程占用但已删除的文件
当一个正在被进程写入的文件被删除后,其磁盘空间不会立即释放(直到进程关闭文件句柄),此时df
显示空间已满,但du
统计结果正常。解决方法:
- 查找被删除但仍被占用的文件:使用
lsof +L1
命令列出所有链接数为0(已删除)但仍被进程打开的文件,重点关注大文件。 - 释放空间:若可重启服务,则重启对应服务(如
sudo systemctl restart nginx
);若需立即释放空间,可终止占用进程(kill -9 PID
,PID为lsof
输出中的进程号)。
5. 清理临时文件
系统和用户产生的临时文件(如/tmp
、/var/tmp
目录)通常可安全清理,不会影响系统运行。清理方法:
- 清空
/tmp
目录:/tmp
目录下的文件会在系统重启后自动清除,但可手动清理以释放空间,命令:sudo rm -rf /tmp/*
。 - 清空
/var/tmp
目录:/var/tmp
目录下的文件会持久化(除非手动删除),定期清理可释放空间,命令:sudo rm -rf /var/tmp/*
。
6. 卸载无用软件包及旧内核
无用软件包和旧内核版本会占用大量磁盘空间,需定期清理:
- 卸载无用软件包:使用
apt autoremove
(Debian/Ubuntu)或dnf autoremove
(RHEL/CentOS)命令卸载不再需要的软件包及其依赖。 - 删除旧内核:
- Debian/Ubuntu系统:使用
dpkg --list | grep linux-image
列出所有已安装的内核,保留当前正在使用的内核(如linux-image-6.5.0-41-generic
),删除旧内核(如sudo apt purge linux-image-5.15.0-86-generic
);清理后运行sudo update-grub
更新引导器配置。 - RHEL/CentOS系统:使用
rpm -q kernel
列出所有内核包,删除旧内核(如sudo yum remove kernel-3.10.0-1160.el7.x86_64
)。
- Debian/Ubuntu系统:使用
7. 清理Docker残留资源
若系统运行了Docker,未使用的镜像、容器、卷和网络会累积占用大量空间。清理方法:
- 清理所有未使用的Docker资源:使用
docker system prune -a --volumes
命令删除所有未使用的镜像、容器、卷和网络(需确认不会影响正在运行的容器)。 - 仅清理停止的容器和未使用的网络:使用
docker container prune
(清理停止的容器)和docker network prune
(清理未使用的网络)命令,更精准地释放空间。
8. 使用图形化磁盘清理工具(可选)
若不熟悉命令行,可使用图形化工具简化清理流程:
- BleachBit:开源免费,支持清理缓存、Cookies、日志、临时文件等,提供图形界面和命令行模式,适用于大多数Linux发行版(如Ubuntu、Fedora)。
- Ubuntu Cleaner:专为Ubuntu及其衍生版本设计,专注于清理APT缓存、缩略图缓存、未使用的包、旧内核等,操作直观,适合新手。
- Stacer:集系统监控、垃圾文件清理、启动项管理于一体,提供美观的图形界面,实时监测系统资源,适用于需要综合优化的用户。
注意事项:
- 清理前务必备份重要数据(如
/home
目录、数据库文件),避免误删导致数据丢失。 - 对于服务器环境,建议在非高峰时段进行清理,避免影响业务运行。
- 定期执行清理操作(如每月一次),可有效防止磁盘空间不足的问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Linux中进行磁盘空间清理
本文地址: https://pptw.com/jishu/724897.html