使用 Butterfly Backup 进行增量备份

[ad_1]

介绍

本文解释了如何进行增量或差异备份,并在您想要的点使用可用于还原(或导出)的目录,以及 蝴蝶备份.

要求

Butterfly Backup 是一个用 python 编写的 rsync 的简单包装器; 第一个要求是 蟒蛇3.3 或更高(加模块 密码学 用于初始化操作)。 其他要求是 opensh同步 (2.5 或更高版本)。 好了,走吧!

[Editors note: rsync version 3.2.3 is already installed on Fedora 33 systems]

$ sudo dnf install python3 openssh rsync git
$ sudo pip3 install cryptography

安装

之后,安装 Butterfly Backup 非常简单,使用以下命令在本地克隆存储库,并设置 Butterfly Backup 以供使用:

$ git clone https://github.com/MatteoGuadrini/Butterfly-Backup.git
$ cd Butterfly-Backup
$ sudo python3 setup.py
$ bb --help
$ man bb

要升级,您也将使用相同的命令。

例子

Butterfly Backup 是服务器到客户端的工具,安装在服务器(或工作站)上。 恢复过程将文件恢复到指定的客户端。 此过程共享一些可用于备份过程的选项。

备份按照精确的目录进行组织; 这是一个例子:

$ tree destination/of/backup
.
├── destination
│   ├── hostname or ip of the PC under backup
│   │   ├── timestamp folder
│   │   │   ├── backup folders
│   │   │   ├── backup.log
│   │   │   └── restore.log
│   │   ├─── general.log
│   │   └─── symlink of last backup
│
├── export.log
├── backup.list
└── .catalog.cfg

Butterfly Backup 主要有六个操作,简称 行动,您可以使用 –help 命令获取有关它们的信息。

$ bb --help
usage: bb [-h] [--verbose] [--log] [--dry-run] [--version]
          {config,backup,restore,archive,list,export} ...

Butterfly Backup

optional arguments:
  -h, --help            show this help message and exit
  --verbose, -v         Enable verbosity
  --log, -l             Create a log
  --dry-run, -N         Dry run mode
  --version, -V         Print version

action:
  Valid action

  {config,backup,restore,archive,list,export}
                        Available actions
    config              Configuration options
    backup              Backup options
    restore             Restore options
    archive             Archive options
    list                List options
    export              Export options

配置

配置模式直截了当; 如果您已经熟悉交换密钥和 OpenSSH,您可能不需要它。 首先,您必须创建一个配置(rsa 密钥),例如:

$ bb config --new
SUCCESS: New configuration successfully created!

创建配置后,密钥将安装(复制)到您要备份的主机上:

$ bb config --deploy host1
Copying configuration to host1; write the password:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/arthur/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

SUCCESS: Configuration copied successfully on host1!

备份

有两种备份模式:单次和批量。
两种备份模式最相关的特性是旧备份的并行性和保留。 见两个参数 –parallel 和 –retention 在 文件.

单一备份

单个机器的备份包括获取命令行中指示的文件和文件夹,并将它们放入上面指示的编目结构中。 换句话说,将机器的所有文件和文件夹复制到一个路径中。

这是一个例子:

$ bb backup --computer host1 --destination /mnt/backup --data User Config --type Unix
Start backup on host1
SUCCESS: Command rsync -ah --no-links [email protected]:/home :/etc /mnt/backup/host1/2020_09_19__10_28

批量备份

最重要的是,批量模式备份与单模式共享相同的选项,不同之处在于它们接受包含主机名或 ips 列表的文件。 在这种模式下,备份将并行执行(默认情况下一次 5 台机器)。 最重要的是,如果您想并行运行更少或更多的机器,请指定 –parallel 参数。

先前备份的增量,例如:

$ cat /home/arthur/pclist.txt
host1
host2
host3
$ bb backup --list /home/arthur/pclist.txt --destination /mnt/backup --data User Config --type Unix
ERROR: The port 22 on host2 is closed!
ERROR: The port 22 on host3 is closed!
Start backup on host1
SUCCESS: Command rsync -ahu --no-links --link-dest=/mnt/backup/host1/2020_09_19__10_28 [email protected]:/home :/etc /mnt/backup/host1/2020_09_19__10_50

有四种备份模式,您可以使用 –mode 标志指定: 满的 (备份所有文件), 镜子 (以镜像模式备份所有文件), 微分 (基于最新的完整备份)和 增加的 (基于最新备份)。
默认模式是增量; 未指定标志时,默认设置为完整模式。

上市目录

第一次运行备份命令时,将创建目录。 该目录用于将来的备份以及通过 Butterfly Backup 进行的所有还原。 要查询此目录,请使用 list 命令。
首先,让我们查询示例中的目录:

$ bb list --catalog /mnt/backup

BUTTERFLY BACKUP CATALOG

Backup id: aba860b0-9944-11e8-a93f-005056a664e0
Hostname or ip: host1
Timestamp: 2020-09-19 10:28:12

Backup id: dd6de2f2-9a1e-11e8-82b0-005056a664e0
Hostname or ip: host1
Timestamp: 2020-09-19 10:50:59

按 q 退出并选择一个备份 ID:

$ bb list --catalog /mnt/backup --backup-id dd6de2f2-9a1e-11e8-82b0-005056a664e0
Backup id: dd6de2f2-9a1e-11e8-82b0-005056a664e0
Hostname or ip: host1
Type: Incremental
Timestamp: 2020-09-19 10:50:59
Start: 2020-09-19 10:50:59
Finish: 2020-09-19 11:43:51
OS: Unix
ExitCode: 0
Path: /mnt/backup/host1/2020_09_19__10_50
List: backup.log
etc
home

要导出目录列表,请将其与 cat 等外部工具一起使用,包括 ––log 标志:

$ bb list --catalog /mnt/backup --log
$ cat /mnt/backup/backup.list

恢复

还原过程与备份过程完全相反。 它从特定备份中获取文件并将其推送到目标计算机。
此命令在备份的同一台机器上执行还原,例如:

$ bb restore --catalog /mnt/backup --backup-id dd6de2f2-9a1e-11e8-82b0-005056a664e0 --computer host1 --log
Want to do restore path /mnt/backup/host1/2020_09_19__10_50/etc? To continue [Y/N]? y
Want to do restore path /mnt/backup/host1/2020_09_19__10_50/home? To continue [Y/N]? y
SUCCESS: Command rsync -ahu -vP --log-file=/mnt/backup/host1/2020_09_19__10_50/restore.log /mnt/backup/host1/2020_09_19__10_50/etc [email protected]:/restore_2020_09_19__10_50
SUCCESS: Command rsync -ahu -vP --log-file=/mnt/backup/host1/2020_09_19__10_50/restore.log /mnt/backup/host1/2020_09_19__10_50/home/* [email protected]:/home

无需指定指示正在检索数据的操作系统的“类型”标志,Butterfly Backup 将通过备份 ID 直接从目录中选择它。

存档旧备份

存档操作用于通过节省磁盘空间来存储备份。

$ bb archive --catalog /mnt/backup/ --days 1 --destination /mnt/archive/ --verbose --log
INFO: Check archive this backup f65e5afe-9734-11e8-b0bb-005056a664e0. Folder /mnt/backup/host1/2020_09_18__17_50
INFO: Check archive this backup 4f2b5f6e-9939-11e8-9ab6-005056a664e0. Folder /mnt/backup/host1/2020_09_15__07_26
SUCCESS: Delete /mnt/backup/host1/2020_09_15__07_26 successfully.
SUCCESS: Archive /mnt/backup/host1/2020_09_15__07_26 successfully.
$ ls /mnt/archive
host1
$ ls /mnt/archive/host1
2020_09_15__07_26.zip

之后,查看目录并查看备份实际上已存档:

$ bb list --catalog /mnt/backup/ -i 4f2b5f6e-9939-11e8-9ab6-005056a664e0
Backup id: 4f2b5f6e-9939-11e8-9ab6-005056a664e0
Hostname or ip: host1
Type: Incremental
Timestamp: 2020-09-15 07:26:46
Start: 2020-09-15 07:26:46
Finish: 2020-09-15 08:43:45
OS: Unix
ExitCode: 0
Path: /mnt/backup/host1/2020_09_15__07_26
Archived: True

结论

Butterfly Backup 诞生于一个非常复杂的需求; 这个工具为 rsync 提供了超能力,使备份和恢复过程自动化。 此外,目录可以让您拥有一个类似于“时间机器”的系统。

总之,Butterfly Backup 是一种轻量级、多功能、简单且可编写脚本的备份工具。

还有一件事; 复活节彩蛋: bb -Vv

感谢您阅读我的帖子。

完整文档: https://butterfly-backup.readthedocs.io/
GitHub: https://github.com/MatteoGuadrini/Butterfly-Backup

摄影者 马努不飞溅.

[ad_2]

Related Posts