Time Machine是官方提供的强大备份系统,它能够备份macOS系统的一切,包括文件、照片、网页纪录、帐号密码以及安装过的软件等。如果系统出了问题,使用”时光回溯“,系统就能回到任意记录点,用过的多说好!
BorgBackup支持增量备份,支持压缩和去重,试用一下,看看它能否达到MAC下时光机器的大部分功能。官网:BorgBackup – Deduplicating archiver with compression and authenticated encryption
1.4版本手册:Quick Start — Borg - Deduplicating Archiver 1.4.0 documentation
安装BorgBackup
FreeBSD下直接pkg安装
pkg install py311-borgbackup
安装好后提示信息:
Message from fusefs-libs-2.9.9_2:
--
Install the FUSE kernel module (kldload fusefs) to use this port.
=====
Message from py311-borgbackup-1.4.0_1:
--
In order to mount locally a remote archive or an entire repository as a FUSE
filesystem, it is required to load fusefs module, for instance, as root, run:
kldload fusefs
To load the module at boot time, you can add it to the kld_list variable
in /etc/rc.conf or related files, for instance, by running
sysrc kld_list+=fusefs
as root. Alternatively, to load the module earlier, you can manually add
fusefs_load="YES"
to /boot/loader.conf.local or /boot/loader.conf with a text editor.
Also, if you plan to mount borg repositories as non root user, you need to run
# sysctl vfs.usermount=1
and add the line
vfs.usermount=1
to /etc/sysctl.conf to ensure the setting is loaded at boot time.
从提示信息,可以知道它使用了FUSEFS系统
FUSEFS,即Filesystem in Userspace(用户空间文件系统),是Linux内核中的一个模块,它允许用户空间程序实现文件系统的操作,而无需修改内核代码。FUSEFS为用户提供了极大的灵活性和可扩展性,使得用户可以轻松开发和使用自定义的文件系统。
设置fusefs内核等
按照提示,load内核,并设置为启动后自动调入内核
kldload fusefs
sysrc kld_list+=fusefs
设为普通用户可以用,在root下执行
sysctl vfs.usermount=1
并把这句
vfs.usermount=1
写入到 /etc/sysctl.conf
查看版本
borg --version
borg 1.4.0
Ubuntu下apt安装
sudo apt install borgbackup
查看版本:
borg --version
borg 1.2.8
使用BorgBackup
初始化
设置备份目录到一台服务器并初始化
borg init --encryption=none [email protected]:/home/skywalk/borgbak
([email protected]) Password for skywalk@fb5:
目录显示
cd borgbak/
skywalk@fb5:~/borgbak $ ll
total 32
drwxr-xr-x 3 skywalk skywalk uarch 8 Aug 5 22:52 ./
drwxr-xr-x 12 skywalk skywalk uarch 23 Aug 5 22:52 ../
-rw------- 1 skywalk skywalk uarch 73 Aug 5 22:52 README
-rw------- 1 skywalk skywalk uarch 209 Aug 5 22:52 config
drwx------ 3 skywalk skywalk uarch 3 Aug 5 22:52 data/
-rw------- 1 skywalk skywalk uarch 70 Aug 5 22:52 hints.1
-rw------- 1 skywalk skywalk uarch 41258 Aug 5 22:52 index.1
-rw------- 1 skywalk skywalk uarch 190 Aug 5 22:52 integrity.1
为了方便,可以把备份目录设为一个变量:
export [email protected]:/home/skywalk/borgbak
sudo borg init --encryption=none $BORG_REPO
执行备份
执行备份
创建仓库后,就可以开始执行备份了。使用borg create
命令可以创建一个新的备份。以下是一个示例命令,它将指定目录备份到之前创建的仓库中:
sudo borg create --stats --progress $BORG_REPO::{hostname}-{now} /etc
borg create --stats --progress $BORG_REPO::{hostname}-{now} /etc /home/skywalk/obsidian/ /usr/local/etc
borg create --stats --progress [email protected]:/home/skywalk/borgbak::money /etc /home/skywalk/obsidian/ /usr/local/etc
borg create [email protected]:/home/skywalk/borgbak::Monday /etc /home/skywalk/obsidian/ /usr/local/etc
要尤其注意命令里面的空格,不能有两个空格。
以上命令并没有运行成功,真正成功的语句见下面:
成功的备份
borg create [email protected]:/home/skywalk/borgbak::Monday /etc /home/skywalk/obsidian/ /usr/local/etc
([email protected]) Password for skywalk@fb5:
Archive Monday already exists
提示Monday已经存在了,那我们就创建一个Tuesday
再创建一个备份,名字叫Tuesday
borg create --stats [email protected]:/home/skywalk/borgbak::Tuesday /etc /home/skywalk/obsidian/ /usr/local/etc
输出
borg create --stats [email protected]:/home/skywalk/borgbak::Tuesday /etc /home/skywalk/obsidian/ /usr/local/etc
([email protected]) Password for skywalk@fb5:
------------------------------------------------------------------------------
Repository: ssh://[email protected]/home/skywalk/borgbak
Archive name: Tuesday
Archive fingerprint: a21bc14b605c6d2f8bb92e50330934078d1227ab7654f1b713b2d016a8666b2c
Time (start): Mon, 2024-08-05 23:23:06
Time (end): Mon, 2024-08-05 23:23:10
Duration: 4.86 seconds
Number of files: 1073
Utilization of max. archive size: 0%
------------------------------------------------------------------------------
Original size Compressed size Deduplicated size
This archive: 6.97 MB 3.08 MB 1.33 MB
All archives: 13.08 MB 6.48 MB 2.94 MB
Unique chunks Total chunks
Chunk index: 954 2102
------------------------------------------------------------------------------
列出所有的备份
borg list [email protected]:/home/skywalk/borgbak
borg list [email protected]:/home/skywalk/borgbak
([email protected]) Password for skywalk@fb5:
money Mon, 2024-08-05 23:14:29 [78553e94ba4fa45f3613356c195c5b11469ee46657fd9bf0a9c433cd6dacd9e2]
Monday Mon, 2024-08-05 23:19:55 [b59c9cef4c964f7a8deb450eb73e9d6def8a8a92d0e1f465de41138832403360]
Tuesday Mon, 2024-08-05 23:23:06 [a21bc14b605c6d2f8bb92e50330934078d1227ab7654f1b713b2d016a8666b2c]
列出Monday备份
borg list [email protected]:/home/skywalk/borgbak::Monday
列出Tuesday备份
borg list [email protected]:/home/skywalk/borgbak::Tuesday
导出备份
导出到本地,比如进入/tmp目录执行:
borg extract [email protected]:/home/skywalk/borgbak::Monday
导出备份后,发现备份的目录和文件都保留了原来的所有者和权限,这样太好了!
总结
BorgBackup这个软件相当强大,感觉稍微调试一下,可以基本达到Mac机中的时光机器的功能。当然时光机器可以直接备份一个系统并在需要的时候直接“克隆”这个系统,这点BorgBackup可能还做不到。
调试
创建borg报错
sudo borg create --stats --progress $BORG_REPO::{hostname}-{now} /etc
Bad : modifier in $ ':'.
不知道是不是csh的缘故,不能这样用,最后用的是手工纯敲字符串
borg里面混入了全角空格等导致问题
输入的时候仔细敲
标签:1.5,BorgBackup,备份,192.168,skywalk,etc,home,borg,软件 From: https://blog.csdn.net/skywalk8163/article/details/140937349