在长期运行的 Linux 系统中,清理冗余文件可以释放磁盘空间并提升性能。以下是系统清理的详细步骤和注意事项:
一、清理系统日志
1. 手动清理日志文件
1 2 3 4 5
| sudo find /var/log -type f -name "*.log" -mtime +30 -delete
sudo truncate -s 0 /var/log/*.log
|
2. 管理 journald
日志(systemd 系统)
1 2 3 4 5 6 7 8
| journalctl --disk-usage
sudo journalctl --vacuum-size=100M
sudo journalctl --vacuum-time=7d
|
3. 配置日志轮转
编辑 /etc/logrotate.conf
,调整轮转策略(如压缩旧日志、保留周期)。
二、清理旧内核(释放 /boot 空间)
1. 查看已安装的内核
1 2 3 4 5
| dpkg --list | grep linux-image
rpm -qa | grep kernel
|
2. 删除旧内核
1 2 3 4 5
| sudo apt autoremove --purge
sudo package-cleanup --oldkernels --count=2
|
三、清理包管理器缓存
1. APT(Debian/Ubuntu)
1 2
| sudo apt clean sudo apt autoremove
|
2. YUM/DNF(RHEL/CentOS/Oracle Linux)
1 2
| sudo yum clean all sudo yum autoremove
|
四、清理用户缓存和临时文件
1. 用户级缓存
1 2 3 4 5
| rm -rf ~/.cache/*
sudo find /home -type d -path "*/.cache/*" -delete
|
2. 系统临时文件
1 2
| sudo rm -rf /tmp/* sudo rm -rf /var/tmp/*
|
3. 内存缓存(可选)
1
| sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
|
五、查找并删除大文件
1. 查找大于 100MB 的文件
1
| sudo find / -type f -size +100M -exec ls -lh {} \;
|
2. 定位占用最多的目录
1
| sudo du -h / | sort -rh | head -n 20
|
六、清理未使用的软件和配置文件
1. 删除残留配置文件(Debian/Ubuntu)
1
| sudo deborphan | xargs sudo apt purge -y
|
2. 清理 Snap 旧版本(Ubuntu)
1
| sudo snap list --all | awk '/disabled/{print $1, $3}' | xargs -rn2 sudo snap remove
|
七、清理容器和虚拟化残留(如 Docker)
1 2 3 4 5
| docker container prune
docker system prune -a --volumes
|
八、自动化清理工具
1. 使用 logrotate
自动管理日志
编辑 /etc/logrotate.d/
下的配置文件,例如:
1 2 3 4 5 6 7 8 9
| /var/log/nginx/*.log { daily missingok rotate 30 compress delaycompress notifempty create 0640 www-data adm }
|
2. 定时任务(Cron)
添加每月清理任务:
1 2 3 4 5
| sudo crontab -e
0 0 1 * * /usr/bin/apt autoremove -y
|
3. 工具推荐
- **
ncdu
**:交互式磁盘分析工具。
- **
bleachbit
**:图形化清理工具(支持 root 模式)。
注意事项
- 备份重要数据:清理前建议备份
/etc
、/home
等关键目录。
- 避免删除运行中的文件:不要直接删除
/proc
、/sys
或正在使用的日志。
- 生产环境谨慎操作:建议在低峰期清理,避免影响服务。
通过以上步骤,可以安全有效地清理长期运行的 Linux 系统。