centos备份文件如何清理
导读:CentOS 备份文件清理指南 一、安全清理流程 确认备份有效:先校验最新备份是否可用(如解压测试、数据库导入演练),再删除旧文件。 明确保留策略:按时间(如保留最近7/30天)或按数量(如保留最近N份)执行,避免误删。 先小范围演练:在...
CentOS 备份文件清理指南
一、安全清理流程
- 确认备份有效:先校验最新备份是否可用(如解压测试、数据库导入演练),再删除旧文件。
- 明确保留策略:按时间(如保留最近7/30天)或按数量(如保留最近N份)执行,避免误删。
- 先小范围演练:在测试目录验证命令与保留逻辑,确认无误再用于生产。
- 做好记录与告警:记录清理日志,设置磁盘阈值告警,防止空间再次告急。
二、按时间或数量自动清理
-
按时间删除旧备份(mtime)
- 删除指定目录中10天前的所有 .tar.gz 备份:
find /mnt/back/ -name "*.tar.gz" -mtime +10 -delete - 说明:-mtime +10 表示“修改时间在10天前”,-delete 直接删除匹配文件。适合按天/周/月滚动的备份目录。
- 删除指定目录中10天前的所有 .tar.gz 备份:
-
按数量保留最新 N 份
- 保留最近7份 .sql 备份,其余删除(按文件名时间排序,ls -t):
backup_dir="/path/to/backup" max_files=7 ls -t "$backup_dir"/*.sql 2> /dev/null | tail -n +$((max_files+1)) | xargs -d '\n' rm -f - 说明:ls -t 按时间从新到旧排序,tail 跳过前 N 个最新文件,其余删除。适合固定份数保留策略。
- 保留最近7份 .sql 备份,其余删除(按文件名时间排序,ls -t):
三、定时清理与备份一体化脚本
- 目标:每天生成备份,且仅保留最近7天;失败时保留旧备份并告警。
- 示例脚本(/usr/local/bin/backup_and_clean.sh):
#!/usr/bin/env bash set -Eeuo pipefail BACKUP_DIR="/mnt/back" KEEP_DAYS=7 LOG_FILE="/var/log/backup_cleanup.log" TODAY=$(date +%Y%m%d) BACKUP_FILE="$BACKUP_DIR/backup_${ TODAY} .tar.gz" exec > > "$LOG_FILE" 2> & 1 echo "[$(date)] 开始备份与清理" # 1) 备份(示例:打包 /var/www) tar czf "$BACKUP_FILE" -C /var/www . || { echo "备份失败,保留现有备份并退出" exit 1 } # 2) 清理超过 KEEP_DAYS 的旧备份 find "$BACKUP_DIR" -name "backup_*.tar.gz" -mtime +"$KEEP_DAYS" -delete echo "[$(date)] 备份与清理完成" - 定时任务(root 使用 crontab -e 或编辑 /etc/crontab):
# 每天 02:05 执行 5 2 * * * root /usr/local/bin/backup_and_clean.sh - 说明:上述做法将“备份”和“清理”合并为一个任务,利用 find 的 -mtime +N 自动淘汰旧备份,避免空间无限增长。
四、清理系统垃圾释放更多空间(可选)
- 清理包管理器缓存与无用依赖:
sudo yum clean all sudo yum autoremove -y # 如为 CentOS 8+/DNF sudo dnf clean all - 清理 systemd 日志(保留最近1天):
sudo journalctl --rotate sudo journalctl --vacuum-time=1d - 清理临时目录与回收站:
sudo rm -rf /tmp/* sudo rm -rf /var/tmp/* rm -rf ~/.local/share/Trash/files/* - 查找并删除超大文件(如大于1GB):
sudo find / -type f -size +1G -exec ls -lh { } \; 2> /dev/null - 使用 ncdu 定位占用空间的大目录:
sudo yum install -y ncdu ncdu / - 提示:这些操作与备份清理无直接耦合,但在清理备份前后执行,有助于快速回收空间与定位异常大文件。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos备份文件如何清理
本文地址: https://pptw.com/jishu/747948.html
