首页主机资讯centos备份文件如何清理

centos备份文件如何清理

时间2025-11-14 13:07:03发布访客分类主机资讯浏览877
导读: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 直接删除匹配文件。适合按天/周/月滚动的备份目录。
  • 按数量保留最新 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天;失败时保留旧备份并告警。
  • 示例脚本(/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
centos系统安全如何检查 centos服务启动项如何管理

游客 回复需填写必要信息