Linux服务器清理指南:释放存储空间的实用技巧
在Linux服务器运维中,磁盘空间不足是常见问题,可能导致系统性能下降甚至服务中断。以下是系统性的清理技巧,覆盖主要空间占用场景,帮助安全释放存储空间。
在清理前,需先明确哪些目录或文件占用了大量空间。使用以下命令快速查看:
df -h /(重点关注根分区/的使用率,若超过80%需警惕);du -sh /var/* /home/* 2>/dev/null | sort -hr | head -10(列出/var、/home等主要目录下空间占用前10的子目录)。/var/log日志目录、/home用户文件等)。包管理器(如APT、YUM/DNF)在安装/升级软件时会缓存下载的包文件,这些文件无保留必要。
sudo apt clean # 清理所有已下载的.deb缓存包
sudo apt autoclean # 仅清理过期的旧版本包(保留最新版本)
sudo yum clean all # YUM清理所有缓存(旧版本)
sudo dnf clean all # DNF清理所有缓存(新版本)
执行后,/var/cache/apt/archives/(APT)或/var/cache/yum/(YUM)目录的空间将被释放。
系统更新时会保留旧内核版本,导致/boot分区空间逐渐耗尽(该分区通常较小)。
dpkg --list | grep linux-image # Debian/Ubuntu
rpm -q kernel # RHEL/CentOS
uname -r查看),卸载其余旧版本。例如Debian/Ubuntu:sudo apt autoremove --purge linux-image-4.15.0-xx-generic # 替换为旧内核版本号
执行后,/boot分区的空间将显著释放。日志文件(如系统日志、应用日志)会随时间无限增长,是磁盘空间的主要消耗者之一。
# 删除/var/log下超过7天的.log文件
find /var/log -type f -name "*.log" -mtime +7 -delete
# 强制系统日志轮转(压缩旧日志)
sudo logrotate -f /etc/logrotate.conf
/etc/logrotate.conf或对应服务的日志轮转文件(如/etc/logrotate.d/apache2),设置maxsize(单日志文件最大大小,如100M)、rotate(保留份数,如5份)等参数,实现自动清理。临时文件(如/tmp、/var/tmp)和应用缓存(如浏览器、IDE)会占用大量空间,且无长期保留价值。
sudo rm -rf /tmp/* /var/tmp/* # 重启后目录会自动重建
rm -rf ~/.cache/* # 用户级通用缓存(如apt、dnf缓存)
rm -rf ~/.thumbnails/* # 图片缩略图缓存
rm -rf ~/.cache/google-chrome/* # Chrome浏览器缓存
rm -rf ~/.cache/mozilla/* # Firefox浏览器缓存
这些命令可快速释放用户目录下的临时文件和缓存。若服务器运行Docker,未使用的镜像、容器和卷会占用大量空间。
docker system prune -a # 删除所有未使用的镜像、容器、网络和构建缓存(谨慎使用,确认无重要数据)
docker builder prune # 清理构建缓存
docker volume prune # 清理未使用的数据卷(卷中可能包含重要数据,需手动确认)
docker network prune # 清理未使用的网络
执行前请确认无正在运行的容器或重要数据。若磁盘空间紧张,可通过find命令快速定位并删除大文件(如超过1GB的文件)。
# 查找当前目录及子目录下大于1GB的文件
find / -type f -size +1G -exec ls -lh {} \; # 先查看文件列表,确认无误后再删除
find / -type f -size +1G -exec rm -f {} \; # 删除找到的文件
注意:执行前需确认文件路径,避免误删系统关键文件(如/etc、/bin等目录下的文件)。
通过cron定时任务定期执行清理脚本,减少人工干预。
/usr/local/bin/cleanup.sh):#!/bin/bash
# 清理/tmp目录
rm -rf /tmp/*
# 清理7天前的系统日志
find /var/log -name "*.log" -mtime +7 -delete
# 清理APT缓存
apt clean
sudo crontab -e
添加以下内容:0 2 * * * /usr/local/bin/cleanup.sh
自动化清理可确保定期释放空间,避免空间不足问题反复出现。/etc)和重要数据(如数据库、用户文件);/boot下的内核文件、/etc下的配置文件);-exec rm -f {} \;部分,仅查看文件列表,确认无误后再执行删除。通过以上技巧定期清理,可有效释放Linux服务器的存储空间,保持系统稳定运行。