温馨提示×

centos回收站数据备份方法

小樊
35
2025-11-16 00:45:51
栏目: 智能运维

CentOS回收站数据备份方法

一 本地回收站目录与定位

  • GNOME 等桌面环境中,回收站对应用户目录下的 ~/.local/share/Trash,其中实际文件位于 ~/.local/share/Trash/files,删除信息在 ~/.local/share/Trash/info。需要备份时,优先备份 files 目录。对于 root 用户,路径为 /root/.local/share/Trash/files。若系统未启用图形界面或未使用 GNOME,可能不存在该目录。以上路径和做法适用于 CentOS 7 及更高版本

二 手动一次性备份

  • 打包压缩备份(保留目录结构,便于迁移与归档):
    • 备份当前用户的回收站文件
      tar -czvf trash_backup_$(date +%F).tar.gz -C ~/.local/share/Trash files
      
    • 备份 root 回收站文件
      sudo tar -czvf trash_backup_root_$(date +%F).tar.gz -C /root/.local/share/Trash files
      
  • 直接复制到备份目录(便于按文件粒度管理):
    mkdir -p /backup/trash_$(date +%F)
    cp -a ~/.local/share/Trash/files /backup/trash_$(date +%F)/
    
  • 说明:上述命令中的 -C 用于切换目录,避免 tar 归档中包含过长前缀;文件名中加入 日期 便于版本管理。

三 定时自动备份脚本

  • 示例脚本 backup_trash.sh(备份所有用户回收站,root 需 sudo 执行)
    #!/usr/bin/env bash
    set -Eeuo pipefail
    
    BACKUP_DIR="/backup/trash/$(date +%F_%H%M%S)"
    mkdir -p "$BACKUP_DIR"
    
    # 备份当前用户
    if [[ -d ~/.local/share/Trash/files ]]; then
      tar -czf "$BACKUP_DIR/trash_${USER}.tar.gz" -C ~/.local/share/Trash files
    fi
    
    # 备份 root(若当前非 root,需要以 root 运行此段或单独以 root 执行)
    if command -v sudo >/dev/null 2>&1; then
      if sudo test -d /root/.local/share/Trash/files; then
        sudo tar -czf "$BACKUP_DIR/trash_root.tar.gz" -C /root/.local/share/Trash files
      fi
    fi
    
    echo "Trash backup saved to: $BACKUP_DIR"
    
  • 添加到定时任务(每天 02:00 执行)
    chmod +x /usr/local/bin/backup_trash.sh
    echo "0 2 * * * /usr/local/bin/backup_trash.sh" | sudo tee /etc/cron.d/backup_trash
    
  • 可按需调整保留策略(如定期清理超过 N 天 的备份),以避免磁盘占满。

四 还原与校验

  • 从压缩包还原到回收站
    # 当前用户
    tar -xzvf trash_backup_2025-11-16.tar.gz -C ~/.local/share/Trash
    
    # root
    sudo tar -xzvf trash_backup_root_2025-11-16.tar.gz -C /root/.local/share/Trash
    
  • 从复制目录还原
    cp -a /backup/trash_2025-11-16/files ~/.local/share/Trash/
    
  • 校验要点
    • 检查文件数量与大小:ls -lR ~/.local/share/Trash/files | wc -l
    • 抽样校验文件可用性:filesha256sum 对比关键文件
    • 还原后文件会出现在文件管理器的“废纸篓”,可正常“还原”或手动移出。

五 补充与排错

  • 若系统未使用 GNOME 或未生成 ~/.local/share/Trash,可自建“安全删除”机制,例如用脚本将 rm 替换为 mv 到自定义回收站,再对该目录做定时备份(示例脚本思路见相关实践)。
  • 若回收站已被清空或文件丢失,且需从磁盘恢复,可尝试 extundelete(ext4)或 TestDisk 等工具;操作前请停止对目标分区写入,成功率取决于是否被覆盖。
  • 若实际场景是 HDFS 的回收站(路径如 /user//.Trash/Current),可用 hdfs dfs -mv 将文件从回收站移回原目录,或用 distcp 将回收站或关键目录定期复制到备份路径/集群。

0