Linux Trigger:磁盘空间如何清理
导读:1. 检查磁盘使用情况,定位高占用分区/目录 在执行清理前,需先确认磁盘空间的实际使用状态,避免盲目操作。使用以下命令: df -h:查看所有挂载分区的磁盘使用率,重点关注“Use%”列(使用率超过90%的分区需优先处理,如根分区/或/h...
1. 检查磁盘使用情况,定位高占用分区/目录
在执行清理前,需先确认磁盘空间的实际使用状态,避免盲目操作。使用以下命令:
df -h:查看所有挂载分区的磁盘使用率,重点关注“Use%”列(使用率超过90%的分区需优先处理,如根分区/或/home);df -i:检查inode使用率(若达到100%,即使磁盘空间充足也无法创建新文件);du -sh /* 2> /dev/null:从根目录开始,查看各子目录的磁盘占用情况(如/var、/home、/usr等),快速定位高占用目录;find / -type f -size +100M 2> /dev/null:查找系统中大于100MB的单个文件(如大型日志、备份文件),便于针对性清理。
2. 清理系统日志文件
日志文件是磁盘空间被迅速耗尽的常见原因(尤其是/var/log目录)。可通过以下方式清理:
- 限制journal日志总大小(适用于使用
systemd的系统):sudo journalctl --vacuum-size=200M(保留最近200MB的日志); - 清空特定日志文件(如
syslog):sudo truncate -s 0 /var/log/syslog(不清除文件本身,仅清空内容); - 删除旧日志归档:
sudo find /var/log -name "*.log.*" -mtime +30 -exec rm -f { } \;(删除30天前的旧日志归档)。
3. 清理软件包缓存
包管理器(如apt、yum)在安装/升级软件时会保留下载的安装包缓存,长期积累会占用大量空间:
- Debian/Ubuntu系统:
sudo apt clean(清理/var/cache/apt/archives中的安装包);sudo apt autoremove(移除不再需要的依赖包); - RHEL/CentOS/Fedora系统:
sudo yum clean all(清理/var/cache/yum中的缓存);sudo dnf clean all(同上,适用于较新版本);sudo package-cleanup --oldkernels --count=1(删除旧内核,保留最新1个)。
4. 删除临时文件
临时文件(如/tmp、/var/tmp中的文件)通常由系统或应用程序临时创建,重启后可安全清理:
- 清空
/tmp目录:sudo rm -rf /tmp/*(删除/tmp下所有文件,不包括子目录); - 清空
/var/tmp目录:sudo rm -rf /var/tmp/*(清理持久化临时文件,如某些应用程序的临时数据)。
5. 清理已删除但未释放的文件句柄
若进程仍占用已删除的文件(如日志文件被删除但服务仍在写入),磁盘空间不会被释放。可通过以下步骤解决:
- 查找被删除但仍被占用的文件:
sudo lsof | grep deleted(输出中“SIZE/OFF”列显示文件大小,“PID”列为进程ID); - 处理方式:若可重启服务(如
nginx),则sudo systemctl restart nginx;若需立即释放空间,可sudo kill -9 PID(终止进程,谨慎操作)。
6. 清理Docker残留资源
若系统运行Docker,未使用的镜像、容器、卷会累积占用大量空间:
- 清理所有未使用的Docker资源(包括镜像、容器、卷、网络):
docker system prune -a --volumes(需确认,会删除所有未使用的资源); - 仅清理停止的容器和未使用的网络:
docker container prune(清理停止的容器);docker network prune(清理未使用的网络)。
7. 卸载无用软件包与旧内核
- 卸载无用软件包:
sudo apt autoremove(Debian/Ubuntu,移除自动安装但不再需要的依赖);sudo yum autoremove(RHEL/CentOS,同上); - 删除旧内核(Debian/Ubuntu):
dpkg --list | grep linux-image(列出所有已安装的内核);sudo apt purge linux-image-< 旧版本>(删除旧内核,保留当前使用的版本);(RHEL/CentOS):rpm -q kernel(列出所有内核);sudo yum remove kernel-< 旧版本>(删除旧内核)。
8. 使用工具自动化清理
- 图形化工具:如Ubuntu的“磁盘使用分析器”(
baobab)、GNOME Disk Utility,可直观查看磁盘使用情况并清理; - 命令行工具:
bleachbit(sudo bleachbit --clean system.cache system.tmp,清理系统缓存与临时文件);stacer(图形化系统优化工具,支持清理缓存、日志等)。
注意事项
- 清理前备份重要数据(如
/home目录、数据库文件),避免误删; - 生产环境中,建议在低峰时段执行清理(如凌晨),避免影响业务;
- 对于关键日志文件(如应用日志),建议配置
logrotate(日志轮转工具),定期压缩/删除旧日志,而非手动清理。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Trigger:磁盘空间如何清理
本文地址: https://pptw.com/jishu/734750.html
