我正在使用 Bacula 和 S3 进行备份。我保留 bacula 卷约 60 天。使用 duplicity,因为我想使用 GPG 加密卷。有没有办法使用 duplicity 进行 rsync 样式同步?我想要的是 S3 中的文件结构与 bacula 上的完全相同。我通常会使用 rsync --delete 来执行此操作。
答案1
简短的回答是......有点。
可以备份和检索文件。但是,如果您从 Web 界面查看 Amazon 存储桶,您将看到的只是备份档案,而不是可以下载的实际文件。这就是 Duplicity 和 Duply(简单的 Duplicity)发挥作用的地方。
从服务器运行一个简单的命令,例如duply myfirstback list
将为您提供所有备份文件的列表。
运行duply myfirstback fetch <file on S3> <destination>
将允许您检索单个文件或整个目录结构。
运行duply myfirstbackup status
将为您提供所有完整备份和增量备份的列表。
然后,您可以告诉 Duply 从哪个备份集中检索文件。例如:duply myfirstbackup fetch 'home/myhome/importantdirectory' ./home/myhome/restore 3D
将从 3 天前的备份中恢复 /home/myhome/importantdirectory,并在 /home/myhome/restore 中本地恢复它(请参阅“duplicity 手册页”,时间格式部分)
如何
假设您使用的是 Linux 操作系统,您可以使用 Duply 和 Duplicity 来简化服务器数据到 S3 的加密和增量备份。
先决条件:python-lockfile、librsync、boto、duplicity、duply
Duply 的配置文件将为你控制 Duplicity,可以放在 /root/.duply/ 中
然后只需创建备份配置,通过发出命令即可完成duply myfirstbackup create
。
然后,您可以编辑 /root/.duply/myfirstbackup 中的两个文件 (conf、exlude)。以下是两者的简化示例:
/root/.duply/myfirstbackup/conf
GPG_PW='my_super_secret_password_which_cannot_lose!'
TARGET='s3://s3.amazonaws.com/<bucketname>/my_backup_folder'
TARGET_USER='AWS_ACCESS_ID'
TARGET_PASS='AWS_ACCESS_SECRET'
SOURCE='/'
MAX_AGE=1M
TEMP_DIR=/tmp
/root/.duply/myfirstbackup/排除
+ /home/myhome
**
以上命令将备份 /home/myhome 中的所有内容并保留一份副本 1 个月。有关如何设置配置的更多信息,请参阅 duply 文档,例如 60 天增量备份。您可以设置每周进行一次完整备份,每 2 小时进行一次增量备份。您可以对此进行充分的控制。
最后一步就是确保你设置了一个 cronjob,以你想要的频率运行它。每天、每小时、每周等等。