欢迎来到使用双重性进行智能备份的系列文章的第 2 部分。 本文建立在重复性的基础之上,使用了一个名为 duply 的工具。
Duply 是重复性的前端,可以与 cron 或 systemd 等重复使用的工具顺利集成。 它的主要特点是:
- 在每个备份作业的配置文件中保留重复设置
- 自动导入/导出配置文件和密钥环之间的密钥
- 启用批处理操作,例如。 备份验证清除
- 运行前/后脚本
- 无缺陷重复操作的前提条件检查
重复运行的一般形式是:
duply PROFILE COMMAND [OPTIONS]
安装
duply 可在 Fedora 存储库。 要安装它,请使用 sudo 使用 dnf 的命令:
dnf install duply
创建个人资料
将备份作业的配置设置重复存储在配置文件中。 要创建配置文件,请使用 create 命令。
$ duply documents create Congratulations. You just created the profile 'documents'. The initial config file has been created as '/home/link/.duply/documents/conf'. You should now adjust this config file to your needs. IMPORTANT: Copy the _whole_ profile folder after the first backup to a safe place. It contains everything needed to restore your backups. You will need it if you have to restore the backup from another system (e.g. after a system crash). Keep access to these files restricted as they contain _all_ informations (gpg data, ftp data) to access and modify your backups. Repeat this step after _all_ configuration changes. Some configuration options are crucial for restoration.
新创建的配置文件包括两个文件:conf 和 exclude。 主文件 conf 包含重复运行所需变量的注释。 阅读您的备份环境特有的任何设置的评论。 重要的是 SOURCE、TARGET、GPG_KEY 和 GPG_PW。
要转换第一篇文章中对重复性的单一调用,请将其分为 4 个部分:
duplicity --name duply_documents --encrypt-sign-key **************** --include $HOME/Documents --exclude '**' $HOME s3+https://**********-backup-docs [ OPTIONS ] [ EXCLUDES ] [SOURCE] [ TARGET ]
通过在每行前面添加 # 来注释以 TARGET、SOURCE、GPG_KEY 和 GPG_PW 开头的行。 将以下行添加到 conf:
SOURCE=/home/link TARGET=s3+https://**********-backup-docs GPG_KEY=**************** GPG_PW=************ AWS_ACCESS_KEY_ID=******************** AWS_SECRET_ACCESS_KEY=****************************************
第二个文件 exclude 存储要从备份中包含/排除的文件路径。 在这种情况下,将以下内容添加到 $HOME/.duply/documents/exclude。
+ /home/link/Documents - **
重复运行
使用 backup 命令运行备份。 一个 example 运行出现在下面。
$ duply documents backup Start duply v2.0.2, time is 2017-07-04 17:14:03. Using profile '/home/link/.duply/documents'. Using installed duplicity version 0.7.13.1, python 2.7.13, gpg 1.4.21 (Home: ~/.gnupg), awk 'GNU Awk 4.1.4, API: 1.1 (GNU MPFR 3.1.5, GNU MP 6.1.2)', grep 'grep (GNU grep) 3.0', bash '4.4.12(1)-release (x86_64-redhat-linux-gnu)'. Autoset found secret key of first GPG_KEY entry 'XXXXXXXXXXXXXXXX' for signing. Checking TEMP_DIR '/tmp' is a folder and writable (OK) Test - Encrypt to 'XXXXXXXXXXXXXXXX' & Sign with 'XXXXXXXXXXXXXXXX' (OK) Test - Decrypt (OK) Test - Compare (OK) Cleanup - Delete '/tmp/duply.15349.1499213643_*'(OK) Backup PUB key 'XXXXXXXXXXXXXXXX' to profile. (OK) Write file 'gpgkey.XXXXXXXXXXXXXXXX.pub.asc' (OK) Backup SEC key 'XXXXXXXXXXXXXXXX' to profile. (OK) Write file 'gpgkey.XXXXXXXXXXXXXXXX.sec.asc' (OK) INFO: duply exported new keys to your profile. You should backup your changed profile folder now and store it in a safe place. --- Start running command PRE at 17:14:04.115 --- Skipping n/a script '/home/link/.duply/documents/pre'. --- Finished state OK at 17:14:04.129 - Runtime 00:00:00.014 --- --- Start running command BKP at 17:14:04.146 --- Reading globbing filelist /home/link/.duply/documents/exclude Local and Remote metadata are synchronized, no sync needed. Last full backup date: Tue Jul 4 14:16:00 2017 Reuse configured PASSPHRASE as SIGN_PASSPHRASE --------------[ Backup Statistics ]-------------- StartTime 1499213646.13 (Tue Jul 4 17:14:06 2017) EndTime 1499213646.40 (Tue Jul 4 17:14:06 2017) ElapsedTime 0.27 (0.27 seconds) SourceFiles 1205 SourceFileSize 817997271 (780 MB) NewFiles 1 NewFileSize 4096 (4.00 KB) DeletedFiles 0 ChangedFiles 0 ChangedFileSize 0 (0 bytes) ChangedDeltaSize 0 (0 bytes) DeltaEntries 1 RawDeltaSize 0 (0 bytes) TotalDestinationSizeChange 787 (787 bytes) Errors 0 ------------------------------------------------- --- Finished state OK at 17:14:07.789 - Runtime 00:00:03.643 --- --- Start running command POST at 17:14:07.806 --- Skipping n/a script '/home/link/.duply/documents/post'. --- Finished state OK at 17:14:07.823 - Runtime 00:00:00.016 ---
请记住,重复是重复性的包装。 因为您在第 1 部分的备份创建过程中指定了 –name,所以重复选取了文档配置文件的本地缓存。 现在,duply 在上周创建的完整备份之上运行增量备份。
恢复文件
duply 提供了两个恢复命令。 使用 restore 命令恢复整个备份。
$ duply documents restore ~/Restore Start duply v2.0.2, time is 2017-07-06 22:06:23. Using profile '/home/link/.duply/documents'. Using installed duplicity version 0.7.13.1, python 2.7.13, gpg 1.4.21 (Home: ~/.gnupg), awk 'GNU Awk 4.1.4, API: 1.1 (GNU MPFR 3.1.5, GNU MP 6.1.2)', grep 'grep (GNU grep) 3.0', bash '4.4.12(1)-release (x86_64-redhat-linux-gnu)'. Autoset found secret key of first GPG_KEY entry 'XXXXXXXXXXXXXXXX' for signing. Checking TEMP_DIR '/tmp' is a folder and writable (OK) Test - Encrypt to 'XXXXXXXXXXXXXXXX' & Sign with 'XXXXXXXXXXXXXXXX' (OK) Test - Decrypt (OK) Test - Compare (OK) Cleanup - Delete '/tmp/duply.12704.1499403983_*'(OK) --- Start running command RESTORE at 22:06:24.368 --- Local and Remote metadata are synchronized, no sync needed. Last full backup date: Thu Jul 6 21:46:01 2017 --- Finished state OK at 22:06:44.216 - Runtime 00:00:19.848 ---
使用 fetch 命令恢复单个文件或目录。
$ duply documents fetch Documents/post_install ~/Restore Start duply v2.0.2, time is 2017-07-06 22:11:11. Using profile '/home/link/.duply/documents'. Using installed duplicity version 0.7.13.1, python 2.7.13, gpg 1.4.21 (Home: ~/.gnupg), awk 'GNU Awk 4.1.4, API: 1.1 (GNU MPFR 3.1.5, GNU MP 6.1.2)', grep 'grep (GNU grep) 3.0', bash '4.4.12(1)-release (x86_64-redhat-linux-gnu)'. Autoset found secret key of first GPG_KEY entry 'XXXXXXXXXXXXXXXX' for signing. Checking TEMP_DIR '/tmp' is a folder and writable (OK) Test - Encrypt to 'XXXXXXXXXXXXXXXX' & Sign with 'XXXXXXXXXXXXXXXX' (OK) Test - Decrypt (OK) Test - Compare (OK) Cleanup - Delete '/tmp/duply.14438.1499404312_*'(OK --- Start running command FETCH at 22:11:52.517 --- Local and Remote metadata are synchronized, no sync needed. Last full backup date: Thu Jul 6 21:46:01 2017 --- Finished state OK at 22:12:44.447 - Runtime 00:00:51.929 ---
重复包含相当多的命令。 阅读 文件 获取完整的命令列表。
其他特性
使用 duplicity 比使用 duplicity 更容易运行计时器。 systemd 用户会话允许您为数据创建自动备份。 为此,请修改 ~/.config/systemd/user/backup.service,将 ExecStart=/path/to/backup.sh 替换为 ExecStart=duply 文档备份。 不再需要包装脚本 backup.sh。
duply 也是备份服务器的好工具。 您可以在 /etc/duply 中创建系统范围的配置文件来备份服务器的任何部分。 现在结合系统和用户配置文件,您将花费更少的时间担心您的数据被备份。