Ubuntu中如何设置文件自动备份
导读:Ubuntu 文件自动备份实用方案 一 方案总览与选择 图形化一键备份:使用Deja Dup(系统自带“备份”应用),适合桌面用户做个人文件/主目录的定时与增量备份,支持本地磁盘或网络存储。 定时归档备份:用tar + cron定期打包目...
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
-
- 准备备份脚本(示例为每天归档并保留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
-
- 添加定时任务
- crontab -e
- 每天02:00执行:0 2 * * * /usr/local/bin/backup.sh
-
- 可选远程备份(SSH)
- 先配置本机到备份服务器的SSH 免密登录,再在脚本中加入:
rsync -avz "$BACKUP_DIR/docs-$DATE.tar.gz" backup_user@backup.example.com:/backup/
-
- 验证与日志
- 手动运行:/usr/local/bin/backup.sh
- 查看 cron 日志:sudo tail -f /var/log/cron.log(如未输出,启用 rsyslog 的 cron 日志)
四 实时增量同步 rsync + inotify
- 适用:目录内容频繁变化,需要“变更即备份/同步”的场景(本地或跨机)。
-
- 安装工具:sudo apt install rsync inotify-tools
-
- 本地实时备份示例
- 创建脚本:/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 &
-
- 远程实时同步(SSH)
- 前提:已配置SSH 免密
- 将 inotify 循环中的 rsync 行替换为:
rsync -avz --delete "$SRC/" backup_user@backup.example.com:/backup/docs/
-
- 说明
- 该方案偏向“镜像同步”,如需版本化归档,请结合定时 tar或版本控制系统。
五 系统级与远程备份建议
- 系统快照:安装Timeshift并配置为每日/每周快照,适合回滚系统与配置;对Btrfs/ZFS支持更好。
- 远程备份与保留策略:用rsync/tar做归档,脚本中加入find … -mtime +N -delete保留最近N天/周;远程传输优先SSH免密,便于无人值守。
- 计划任务与日志:桌面/简单任务用cron;若需依赖 systemd 的日志与依赖管理,可用systemd Timer替代。
- 监控与演练:定期检查**/var/log/cron.log或 systemd 定时器状态,并定期恢复演练**确保可恢复性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu中如何设置文件自动备份
本文地址: https://pptw.com/jishu/774142.html
