在轻量应用服务器(如腾讯云轻量应用服务器、阿里云轻量服务器等)上定期清理系统垃圾文件,有助于释放磁盘空间、提升系统性能。以下是几种常见的清理方法和自动化方案:
一、常见垃圾文件类型
- 临时文件:
/tmp、/var/tmp - 日志文件:
/var/log/下的旧日志 - 缓存文件:
~/.cache、/var/cache - 包管理器缓存:
apt(Debian/Ubuntu):/var/cache/apt/archives/yum/dnf(CentOS/RHEL):/var/cache/yum/
- 无用依赖或残留包
- core dump 文件、旧内核等
二、手动清理命令
1. 清理 APT 缓存(Ubuntu/Debian)
sudo apt clean # 删除已下载的包文件
sudo apt autoremove # 删除不再需要的依赖包
2. 清理 YUM/DNF 缓存(CentOS/RHEL)
sudo yum clean all # 或 dnf clean all
sudo yum autoremove # 或 dnf autoremove
3. 清理日志文件(谨慎操作)
# 使用 journal 日志时
sudo journalctl --vacuum-time=7d # 保留最近7天日志
sudo journalctl --vacuum-size=100M # 限制日志总大小
# 手动删除旧日志(可选)
sudo find /var/log -name "*.log.*" -mtime +7 -delete
4. 清理临时目录
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
⚠️ 注意:确保没有正在运行的服务依赖这些临时文件。
三、设置定时任务自动清理(使用 cron)
编辑 root 用户的 crontab:
sudo crontab -e
添加以下内容(示例为每周日凌晨2点执行):
# 每周日凌晨2:00清理系统垃圾
0 2 * * 0 /usr/bin/apt clean && /usr/bin/apt autoremove -y
0 2 * * 0 find /tmp -type f -atime +7 -delete
0 2 * * 0 find /var/log -name "*.log.*gz" -mtime +30 -delete
0 2 * * 0 journalctl --vacuum-time=7d
💡 提示:根据你的系统调整路径和命令。
四、使用脚本集中管理(推荐)
创建一个清理脚本 /root/clean_system.sh:
#!/bin/bash
# 系统垃圾清理脚本
echo "开始清理系统垃圾..."
# 清理 APT 缓存
apt clean
apt autoremove -y
# 清理 tmp 目录(超过7天未访问的文件)
find /tmp -type f -atime +7 -delete
find /var/tmp -type f -atime +7 -delete
# 清理旧日志压缩包
find /var/log -name "*.log.*gz" -mtime +30 -delete
# 限制 journal 日志大小
journalctl --vacuum-time=7d
journalctl --vacuum-size=100M
echo "清理完成。"
赋予执行权限:
chmod +x /root/clean_system.sh
加入定时任务:
crontab -e
添加:
0 2 * * 0 /root/clean_system.sh >> /var/log/clean_system.log 2>&1
这样每次运行会记录日志,便于排查问题。
五、注意事项
- 备份重要数据:清理前确认不会误删关键文件。
- 测试脚本:先手动运行脚本,确保无误。
- 监控磁盘使用:可用
df -h和du -sh /*查看空间占用。 - 避免频繁删除日志:可能影响故障排查,建议保留至少3-7天。
六、额外建议
- 使用
ncdu工具分析大文件:sudo ncdu / - 启用 logrotate 正常轮转日志,避免日志膨胀。
- 对于 Web 服务器(如 Nginx/Apache),定期清理访问日志备份。
通过以上方式,你可以让轻量应用服务器保持整洁,避免因磁盘占满导致服务异常。建议结合监控工具(如云平台自带监控)及时发现空间问题。
云小栈