CentOS清理系统备份的实用技巧
使用find命令按路径、文件名特征(如.bak、backup-*)和修改时间(-mtime,单位:天)快速定位并删除旧备份。例如:
/path/to/backup目录下所有.bak格式且修改时间超过7天的文件:find /path/to/backup -name "*.bak" -mtime +7 -exec rm -f {} \;/var/backups目录下所有以backup-开头且修改时间超过30天的文件:find /var/backups -name "backup-*" -mtime +30 -exec rm -rf {} \;-exec rm -f {} \;会直接删除匹配的文件,建议先运行find命令(去掉-exec部分)确认目标文件无误后再执行删除。通过crontab设置定时任务,定期执行清理脚本,避免手动操作遗漏。步骤如下:
/usr/local/bin/cleanup_backups.sh),内容示例:#!/bin/bash
BACKUP_DIR="/path/to/backup" # 备份目录路径
MAX_AGE=7 # 保留最近7天的备份
find "$BACKUP_DIR" -type f -name "*.bak" -mtime +$MAX_AGE -exec rm -f {} \;
chmod +x /usr/local/bin/cleanup_backups.shcrontab -e,然后添加行:0 2 * * * /usr/local/bin/cleanup_backups.shMAX_AGE(如30天)和执行时间(如周末凌晨),平衡磁盘空间与备份保留需求。CentOS系统升级或安装软件时会产生旧内核备份、缓存文件等,可通过以下命令清理:
sudo yum clean allsudo dnf clean allsudo package-cleanup --oldkernels --count=1sudo yum clean expire-cache(YUM)或sudo dnf clean expire-cache(DNF)uname -r查看当前内核版本)。若备份文件与系统日志共用目录(如/var/log),可使用logrotate或journalctl清理旧日志,避免日志占用备份目录空间:
journalctl限制日志大小和保留时间(如保留最近50MB日志,删除更早的日志):sudo journalctl --vacuum-size=50Mlogrotate配置日志轮转(编辑/etc/logrotate.conf,添加以下规则):/var/log/*.log {
daily # 每天轮转
rotate 7 # 保留7个轮转文件
compress # 压缩旧日志
missingok # 忽略缺失的日志文件
notifempty # 日志为空时不轮转
}
作用:减少日志文件对备份目录的占用,间接释放备份空间。
若不熟悉命令行,可使用图形化工具快速清理备份文件:
sudo yum install bleachbit -y,然后运行bleachbit,选择“系统备份”“临时文件”等项目清理。sudo yum install ncdu -y,然后运行ncdu /,进入目标目录查看并删除大文件。