1. 盘点磁盘使用状况
首先通过df -h /命令查看根分区及各分区的磁盘使用详情(如总容量、已用空间、可用空间),快速定位占用空间最多的分区;再用du -sh * | sort -nr | head -n 10命令进入占用空间大的分区(如根分区),查看当前目录下各文件/子目录的大小并排序,找出占用空间最大的目录。这一步是清理优化的基础,帮助明确清理方向。
2. 清除包缓存
包管理器(如APT、YUM)在安装或升级软件时会缓存软件包文件,这些文件占用了大量空间且无需长期保留。
sudo apt clean命令清除所有缓存的软件包文件;sudo apt autoclean命令仅清除旧版本的缓存软件包(比apt clean更安全)。sudo yum clean all命令清除YUM缓存;sudo dnf clean all命令清除DNF缓存(Fedora及新版本CentOS推荐)。3. 卸载多余内核版本
系统更新时会保留旧版本内核,旧内核不仅占用空间(每个内核约占用100-500MB),还可能增加启动项数量。
dpkg --list | grep linux-image命令列出所有已安装的内核(排除当前正在使用的内核,可通过uname -r查看当前内核版本);用sudo apt-get remove --purge linux-image-x.x.x-x-generic命令卸载旧内核(将x.x.x-x-generic替换为旧内核版本号)。rpm -q kernel命令列出所有已安装的内核;用sudo yum remove kernel-x.x.x-x命令卸载旧内核(将x.x.x-x替换为旧内核版本号)。sudo update-grub命令更新引导器配置,确保系统能正常启动。4. 整理日志文件
日志文件(如/var/log目录下的syslog、auth.log、kern.log等)会随时间推移变得庞大(尤其是服务器环境),占用大量空间。
sudo journalctl --vacuum-time=7d命令保留最近7天的系统日志(可根据需求调整天数,如30d表示保留30天);用sudo rm /var/log/*.log命令删除/var/log目录下所有.log文件(需谨慎,避免删除正在使用的日志文件)。logrotate工具设置日志轮转策略(默认配置文件为/etc/logrotate.conf),实现日志文件的自动压缩、删除(例如设置日志保留7天或大小超过1GB时自动轮转)。例如,在/etc/logrotate.d/syslog文件中添加以下配置:/var/log/syslog {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
}
该配置表示每天轮转syslog文件,保留最近7个压缩日志,压缩后文件大小减小,且不会删除正在使用的日志。5. 清理临时文件与缓存
临时文件(如/tmp目录下的文件)和应用程序缓存(如浏览器缓存、系统缓存)是无用空间的主要来源。
sudo rm -rf /tmp/*命令删除/tmp目录下的所有临时文件(/tmp目录下的文件通常会在系统重启时自动清理,但定期手动清理更彻底)。bleachbit工具(跨平台系统清理工具):安装sudo apt install bleachbit(Debian/Ubuntu)或sudo yum install bleachbit(RHEL/CentOS),运行后选择“系统缓存”“临时文件”等选项进行清理(图形界面操作,简单直观)。6. 查找并删除大文件
大文件(如超过100MB的视频、ISO镜像、备份文件)是磁盘空间的“吞噬者”,需及时定位并删除。
find命令查找大文件:例如sudo find / -type f -size +100M -exec ls -lh {} \;命令查找系统中所有大于100MB的文件,并显示其详细信息(-type f表示查找文件,-size +100M表示大于100MB,-exec ls -lh {} \;表示列出文件详情);rm命令删除(例如sudo rm /path/to/large_file.iso)。/usr、/bin目录下的文件),建议在根分区(/)下查找。7. 卸载无用软件包
无用的软件包不仅占用空间,还可能增加系统负担(如启动项、后台服务)。
sudo apt autoremove命令自动卸载不再需要的依赖包(即软件包安装时自动安装的依赖,但当前软件已卸载的依赖);sudo apt remove --purge package_name命令卸载指定软件包及其配置文件(将package_name替换为软件包名称,如firefox)。sudo yum autoremove命令自动卸载无用依赖;sudo yum remove package_name命令卸载指定软件包。8. 使用可视化清理工具
对于不熟悉命令行的用户,可使用图形化工具简化清理过程:
sudo apt install baobab(Debian/Ubuntu)或sudo yum install baobab(RHEL/CentOS),运行后通过图形界面查看磁盘空间使用情况,点击目录即可查看子目录大小,快速定位大文件/目录。sudo apt install bleachbit(Debian/Ubuntu)或sudo yum install bleachbit(RHEL/CentOS),通过图形界面选择清理项目(如系统缓存、临时文件、浏览器缓存),一键清理无用文件。9. 配置日志压缩与自动清理
通过logrotate工具设置日志自动轮转与压缩,避免日志文件无限增长。编辑/etc/logrotate.conf文件(全局配置)或/etc/logrotate.d/目录下的具体配置文件(如/etc/logrotate.d/syslog),添加以下配置:
/path/to/logfile {
daily # 每天轮转
rotate 7 # 保留7个轮转日志
compress # 压缩轮转后的日志(使用gzip)
missingok # 如果日志文件不存在也不报错
notifempty # 如果日志文件为空则不轮转
create 640 root adm # 创建新的日志文件,权限为640,所有者为root,组为adm
}
该配置可实现日志文件的自动管理,减少日志占用的空间。
10. 定期维护与监控
清理优化不是一次性任务,需定期执行:
cron定时任务(如每天凌晨2点)运行df -h命令,将结果发送到邮箱(需配置邮件服务),及时掌握磁盘空间使用情况。cron结合df命令,当磁盘空间使用率超过80%时发送报警邮件(例如在/etc/crontab中添加以下任务):0 2 * * * root /usr/bin/df -h | awk '{if ($5+0 > 80) print $0}' | mail -s "Disk Space Alert" your_email@example.com
该任务每天凌晨2点检查磁盘空间,若使用率超过80%,则发送报警邮件提醒管理员。