在具有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 dump被上传到Dropbox中:
文件名始终是backup.tar 。 没有时间戳被添加。 Dropbox负责版本控制。
tar文件是未压缩的,这有助于Dropbox 增量同步 。
但是,在监视(使用dropbox.py )将backup.tar上传到Dropbox时,我感觉Dropbox客户端没有使用增量同步。 这不好:
没有增量同步,服务器带宽被浪费。
我已经与我的个人Dropbox共享备份文件夹,所以每天都会将backup.tar下载到我的笔记本电脑(并从那里进入离线备份系统)。 如果没有增量同步,下载需要花费很长的时间和浪费带宽。
给定的目的是什么是一个好的备份存档格式?
我可以rsync一个循环安装的图像文件。 这听起来像个好主意吗?
我刚刚testing了rdiff实用程序,它是librsync的一部分, 根据维基百科, Dropbox依赖于librsync。 testing显示增量仅为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上传的增量大小。