[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]