系统Tar恢复-适用于Linux的功能丰富的备份脚本(star.sh)
“ System Tar and Restore”是Linux的开源程序,它提供了多个选项来创建备份和还原它们。
它包含两个脚本:一个是主程序,另一个是GUI包装器。
它具有三种不同的模式:备份,还原和传输。
它在Arch,Debian/Ubuntu,Fedora,OpenSUSE,Gentoo和Mandriva中可用。
我们可以在其官方存储库中查看代码和文档。
安装
以下方法应该在任何Linux发行版中都可以使用,因为它使用Linux标准工具。
此步骤很容易,我们只需从发行版部分下载源代码。
在此示例中,我下载了.tar.gz文件。
然后,在已下载源代码的文件夹中打开一个终端,并通过键入以下内容解压缩文件:
$sudo tar -xf system-tar-and-restore-6.8.tar.gz
请注意,文件名可能会因软件的下载版本而异。
最后,我们必须转到解压缩的文件夹并执行该工具:
$cd system-tar-and-restore-6.8 $./star.sh
如果要在GUI模式下使用该软件,请执行以下脚本:
$./star-gui.sh
我们会看到以下内容:
Arch Linux的替代方法-AUR
对于使用AUR的Arch Linux,还有另一种方法:
转到AUR system-tar-and-restore,然后单击“下载快照”,如图所示:
现在打开一个终端,然后转到软件包所在的路径。
类型:
$tar -xf system-tar-and-restore.tar.gz $cd system-tar-and-restore $makepkg -csi PKGBUILD
并对所有人回答“是”。
然后,我们可以通过键入以下内容(从任何位置)来运行该工具:
CLI模式:
$sudo star.sh
GUI模式:
$sudo star-gui.sh
模式
这是模式及其选项的说明。
我将在本文的下一部分中向我们展示一些示例。
后备
此模式允许用户对系统进行tar备份。
可以定义以下选项:
- 存档文件名:这就是备份存档文件的命名方式。默认值为'Backup-$(主机名)-$(日期+%Y%m%d-%H%M%S)'。
- 目标目录:备份存档的保存位置。默认值为'/'。
-/home目录:我们可以做三件事:完全包含它,仅包含隐藏的文件和文件夹(以保持登录名和某些设置)或者排除它。 - 压缩:可以使用Gzip,bzip2和xz格式。我们也可以选择不压缩。官方文档建议使用gzip。
- 加密方法和密码短语:如果要向档案库提供加密,请在openssl或者gpg加密方法之间进行选择。我们还应该输入密码。
- 存档器选项:我们可以在存档器中提供其他参数。键入“ tar --help”将为我们提供更多信息。
该程序可以读取最初位于'/etc/backup.conf'中的配置文件。
我们可以指定另一个路径,然后通过键入“ star.sh -i 0 -C /path/backup.conf”(CLI模式)或者“ star-gui.sh /path/backup.conf”(GUI模式)来使用它。
我们可以通过添加选项'-g'查看开发人员提供的示例或者生成配置文件。
完成该过程后,我们将在备份档案的相同路径中看到一个backup.log。
恢复/传输
还原模式的目的是将在备份模式下创建的档案提取到磁盘/分区中。
传输模式使用rsync将系统传输到磁盘/分区。
在恢复和传输模式下,该工具都会生成目标系统的fstab,针对每个已安装的内核重建initramfs,生成语言环境,并安装和配置引导加载程序。
要使用此选项,我们必须以实时模式启动目标发行版。
我们也可以从其他发行版启动,但我建议第一种选择。
然后,我们可以设置以下选项:
- 目标分区:必须选择目标根分区。然后,我们可以自由地为/home,/boot或者swap选择其他分区。如果我们使用的是UEFI,则可以指定目标ESP分区及其挂载点。
- 挂载选项:对于目标根分区,我们可以指定挂载选项,以逗号分隔。默认值为'defaults,noatime'。
- Btrfs子卷:如果目标根FS是Btrfs,则可以创建子卷。输入用空格分隔的路径。推荐的根子卷名称为'__active'。
- Bootloader:可以在BIOS系统上选择Grub 2或者Syslinux。如果使用RAID阵列,该工具将在其每个设备中安装引导加载程序。对于UEFI,我们可以选择Grub,EFISTUB/efibootmgr或者Systemd/bootctl。也可以添加其他内核选项。
- 模式:恢复:指定备份存档。传输模式(传输/home,隐藏的文件和文件夹或者排除)。
- Tar/Rsync选项:我们可以指定更多选项。如需帮助,请输入:'rsync --help'或者'tar --help'。
该过程完成后,将在/tmp/restore.log中创建一个日志。
例子
我们可以使用一个字母或者全字词选项。
我只会在第一个示例中显示完整单词。
我们可以在终端中键入“ sudo ./star.sh --help”以查看不同选项的参数。
后备
示例1:指定存档文件名,目标位置,压缩模式和其他选项。
- 存档文件名:备份
- 目的地:/home/ivo/backups
- 压缩方式:gzip
- 添加选项:--exclude =/home/ivo/.cache/* --warning = none
$sudo star.sh -i 0 --directory /home/ivo/backups --compression gzip --user-opts "--exclude=/home/ivo/.cache/* --warning=none" --filename "backup"
示例2:指定目标,压缩模式,/home目录和加密方法。
- 目的地:/home/ivo/backups
- 压缩:bzip2
-/home目录:完全排除 - 用openssl加密
$sudo star.sh -i 0 -d /home/ivo/backups -c bzip2 -E openssl -P 1234 -H
恢复
示例3:选择根分区,引导程序和本地模式。
- 目标分区:根目录:/dev/sdb1
- 引导程序:grub
- 模式:本地存档
$sudo star.sh -i 1 -r /dev/sdb1 -G /dev/sdb -f /home/ivo/backups/backup.tar.gz
示例4:选择根分区,引导加载程序和远程模式。
- 目标分区:根目录:/dev/sda4
- 引导加载程序:EFISTUB
- 模式:HTTP服务器中受远程文件保护
$sudo star.sh -i 1 -r /dev/sda4 -F /dev/sda -f http://server/backup.tar.gz -y username -p password
示例5:选择根分区和主分区,引导加载程序和本地模式。
- 目标分区:根目录:/dev/sda2,主目录:/dev/sda3
- 引导程序:grub
- 模式:本地存档
$sudo star.sh -i 1 -r /dev/sda2 -h /dev/sda3 -G auto -f /home/ivo/backup.tar.gz
转移
示例6:选择根分区,引导程序和内核选项。
- 目标分区:根目录:/dev/sda1
- 引导加载程序:Syslinux
- 内核选项:nomodeset
$sudo star.sh -i 2 -r /dev/sda1 -S /dev/sda -k nomodeset
示例7:选择root,boot,usr和var分区,bootloader和模式。
- 目标分区:引导:/dev/sda1,根:/dev/sda2,usr:/dev/sda3,var:/dev/sda4
- 引导程序:grub
- 模式:仅传输/home的隐藏文件和文件夹
$sudo star.sh -i 2 -b /dev/sda1 -r /dev/sda2 -t "/usr=/dev/sda3 /var=/dev/sda4" -G /dev/sdb -O