更新

更新

在具有 Linux AMI 的 Amazon EC2 服务器上,我当前每天都会运行一个备份 cron 作业:

TMP_BACKUP_FILE="/tmp/backup.tar"
BACKUP_FILE="/home/ec2-user/Dropbox/Backup/backup.tar"

rm -f "$TMP_BACKUP_FILE"
tar cf "$TMP_BACKUP_FILE" \
    /home /root /var/lib/redis /var/spool /etc
mv "$TMP_BACKUP_FILE" "$BACKUP_FILE"
chown ec2-user:ec2-user "$BACKUP_FILE"

将 tar 转储上传至 Dropbox:

  • 文件名始终为backup.tar。不添加时间戳。Dropbox 负责版本控制。

  • tar 文件未压缩,这样可以方便 Dropbox 增量同步

但是,当使用 监控Dropboxdropbox.py的上传时间时backup.tar,我发现 Dropbox 客户端没有使用增量同步。这很糟糕:

  1. 如果没有增量同步,服务器带宽就会被浪费。

  2. 我已将备份文件夹与我的个人 Dropbox 共享,因此每天 backup.tar都会下载到我的笔记本电脑上(然后从那里进入离线备份系统)。如果没有增量同步,下载会花费很长时间,并且再次浪费带宽。

对于给定的目的来说,什么是良好的备份档案格式?

我可以 rsync 到循环安装的图像文件。这听起来是个好主意吗?

更新

rdiff我刚刚用这个实用程序(librsync 的一部分)做了一个测试,根据维基百科Dropbox 依赖于 librsync。测试显示增量只有 2.6 MB,因此比备份存档的 354 MB 小得多。因此,对于给定目的,tar 可能是一种合适的格式。测试:

$ mv ~/Dropbox/Backup/backup.tar /tmp
$ sudo ~/bin/backup.sh
$ mv ~/Dropbox/Backup/backup.tar /tmp/backup_new.tar
$ cd /tmp
$ rdiff signature backup.tar >backup.tar.signature
$ rdiff delta backup.tar.signature backup_new.tar >backup_new.tar.delta
$ ls -lh backup.tar backup_new.tar backup_new.tar.delta
-rw-rw-r-- 1 ec2-user ec2-user 354M Dec 21 13:39 backup_new.tar
-rw-rw-r-- 1 ec2-user ec2-user 2.6M Dec 21 13:55 backup_new.tar.delta
-rw-rw-r-- 1 ec2-user ec2-user 354M Dec 21 00:10 backup.tar

我在 Dropbox 论坛上提问关于如何找出 Dropbox 上传的增量大小。

相关内容