温馨提示×

Ubuntu中如何设置文件自动备份

小樊
43
2025-12-16 20:31:42
栏目: 智能运维

Ubuntu 文件自动备份实用方案

一 方案总览与选择

  • 图形化一键备份:使用Deja Dup(系统自带“备份”应用),适合桌面用户做个人文件/主目录的定时与增量备份,支持本地磁盘或网络存储。
  • 定时归档备份:用tar + cron定期打包目录,可配合find做保留策略(如保留最近7天),简单可靠。
  • 实时增量同步:用rsync + inotify在文件变更时立即同步到本地或远程,适合对变更敏感的数据目录。
  • 系统级与整机:用Timeshift做系统快照(Btrfs/ZFS 更佳),或用rsync/tar做整盘/根分区归档;远程备份可结合SSH免密。
  • 计划任务引擎:优先用cron;如需与 systemd 生态更好集成,可用systemd Timer替代。

二 图形化方案 Deja Dup

  • 安装(如未预装):sudo apt update && sudo apt install deja-dup
  • 打开“设置 → 备份”,选择备份位置(如外置硬盘/网络存储),设置备份频率(如每天/每周),开启“自动备份”。
  • 适合场景:桌面用户、主目录/文档的日常备份与快速恢复。

三 定时归档备份 tar + cron

    1. 准备备份脚本(示例为每天归档并保留7天)
    • sudo nano /usr/local/bin/backup.sh
    • 内容示例:
      #!/bin/bash
      set -e
      SOURCE="/home/yourname/Documents"
      BACKUP_DIR="/backup"
      DATE=$(date +%F)
      mkdir -p "$BACKUP_DIR"
      tar -czf "$BACKUP_DIR/docs-$DATE.tar.gz" -C "$SOURCE" .
      # 保留最近7天
      find "$BACKUP_DIR" -name "docs-*.tar.gz" -mtime +7 -delete
      
    • 赋权:sudo chmod +x /usr/local/bin/backup.sh
    1. 添加定时任务
    • crontab -e
    • 每天02:00执行:0 2 * * * /usr/local/bin/backup.sh
    1. 可选远程备份(SSH)
    • 先配置本机到备份服务器的SSH 免密登录,再在脚本中加入:
      rsync -avz "$BACKUP_DIR/docs-$DATE.tar.gz" backup_user@backup.example.com:/backup/
      
    1. 验证与日志
    • 手动运行:/usr/local/bin/backup.sh
    • 查看 cron 日志:sudo tail -f /var/log/cron.log(如未输出,启用 rsyslog 的 cron 日志)

四 实时增量同步 rsync + inotify

  • 适用:目录内容频繁变化,需要“变更即备份/同步”的场景(本地或跨机)。
    1. 安装工具:sudo apt install rsync inotify-tools
    1. 本地实时备份示例
    • 创建脚本:/usr/local/bin/backup_inotify.sh
      #!/bin/bash
      SRC="/home/yourname/Documents"
      DST="/backup/docs"
      mkdir -p "$DST"
      inotifywait -m -r -e create,modify,delete,moved_to,moved_from --format '%w%f' "$SRC" | while IFS= read -r file; do
          rsync -a --delete "$SRC/" "$DST/"
      done
      
    • 赋权并后台运行:chmod +x …;nohup /usr/local/bin/backup_inotify.sh &
    1. 远程实时同步(SSH)
    • 前提:已配置SSH 免密
    • 将 inotify 循环中的 rsync 行替换为:
      rsync -avz --delete "$SRC/" backup_user@backup.example.com:/backup/docs/
      
    1. 说明
    • 该方案偏向“镜像同步”,如需版本化归档,请结合定时 tar或版本控制系统。

五 系统级与远程备份建议

  • 系统快照:安装Timeshift并配置为每日/每周快照,适合回滚系统与配置;对Btrfs/ZFS支持更好。
  • 远程备份与保留策略:用rsync/tar做归档,脚本中加入find … -mtime +N -delete保留最近N天/周;远程传输优先SSH免密,便于无人值守。
  • 计划任务与日志:桌面/简单任务用cron;若需依赖 systemd 的日志与依赖管理,可用systemd Timer替代。
  • 监控与演练:定期检查**/var/log/cron.log或 systemd 定时器状态,并定期恢复演练**确保可恢复性。

0