电子说
本文将向你展示如何使用 UrBackup 和 Linux Deploy在一台 Android 旧手机上搭建一台备份服务器。旧手机的污染问题众所周知,我有一台旧手机,虽然外壳有裂纹和磨损,但性能还很好,因此我打算废物再利用一下。 你的旧手机很可能:
并没有那么旧(你会像换手机那样一两年就换一台电脑吗?)
有 4-8 个处理器和大约 4GB 的内存,以及内置 UPS。只需要再加一个外部硬盘驱动,就可以备份整个家庭的网络了!
文件系统只能使用 EXT4。这是唯一兼容 UrBackup 和 Android 的文件系统。因此没有文件系统级别的压缩等功能。
从 chroot 环境下无法直接调用 systemd。我们会安装一个简单的启动脚本,启动 UrBackup 服务,并使用 pkill 停止服务。此外,我们还会添加一个 cronjob,在系统启动时启动服务。
UrBackup 主要以 Windows 为主。虽然它提供 Linux 的完整备份功能,但其 Linux 版本的完整镜像依然是 beta 版状态。此处我们会安装稳定版,所以我们的服务器无法支持利用 Linux 客户端进行完整镜像备份。但是,你可以在客户端上创建备份镜像,然后备份含有这些镜像的目录。最后,UrBackup 团队也在开发 Mac 客户端支持,但同样是beta 版。对于我来说,我没有 Windows 服务器,我也不想备份我的Windows 笔记本电脑,所以我只在 Linux 服务器上使用 UrBackup。
Linux Deploy 提供的发行版和版本支持很有限。我试验了 Centos7、Ubuntu 18.04 和 Debian 10,其中只有 Debian 10 能够毫无错误地运行。UrBackup 对 Debian 的支持也为最好(其他发行版都没有 ARM64 的 .deb 包)。
root 手机。具体做法请参考相关文档,不在此赘述。
安装 Linux Deploy 并部署 Debian Buster。
安装 UrBackup 服务器。
连接客户端。
确保你使用的 boot.img 文件与手机当前的引导程序版本相符。
如果你使用的是 Android 11,而且 Magisk 程序无法正常工作,请降级到 Android 10再试。我在 Pixel 4a 上摆弄了一整天的 Android 11。
如果你不想使用 Magisk,请非常谨慎地使用其他工具。有很多其他应用程序可能含有恶意软件。CF-Auto-Root 也是一款很好的 root 工具,但请确认下载源的安全。
apt update && apt upgrade -y && apt install wget
2-3. 下载 UrBackup 的 .deb 包。wget https://hndl.urbackup.org/Server/2.4.13/urbackup-server_2.4.13_arm64.deb
这是目前最新的稳定版本。2-4. 创建备份目录。在这个例子中,我将备份目录设置为 “/mnt/backup”。如果你挂载了存储,则目录已经创建好了;如果没有,请创建目录:
mkdir -p /mnt/backup
更新权限:chown urbackup /mnt/backup
chgrp urbackup /mnt/backup
允许 UrBackup 写入此目录。2-5. 安装启动脚本。我们无法在 chroot 环境中调用 systemd,因此需要手动启动该服务:/usr/bin/urbackupsrv run --config /etc/default/urbackupsrv --no-consoletime
为了避免每次都输入该命令,我们可以创建一个脚本:nano /usr/bin/urbackupsrv-star
将其复制到下面的文件中:#!/bin/sh
/usr/bin/urbackupsrv run --config /etc/default/urbackupsrv --no-consoletime
保存并退出。添加执行权限:chmod 755 /usr/bin/urbackupsrv-start
2-6. 启动服务。urbackupsrv-start
该命令将启动服务器的日志。你可以按下 CTRL-C 停止服务,因此需要另开一个 SSH 会话。如果想停止此服务,只需要干掉它就可以了:pkill urbackup
2-7. 添加定时作业。由于我们无法以传统的方式“启用” UrBackup 服务,因此需要设置一个定时作业来启动该服务。此外,如果你断开外部块存储或重新启动手机,备份目录的权限可能会恢复。为确保在重新启动时这些设置能保留下来,我们需要添加定时作业。打开 crontab:crontab -e
添加作业:@reboot chown urbackup [full/path/to/backup_directory] && chgrp urbackup [full/path/to/backup_directory] && urbackupsrv-start
保存并退出。2-8. 打开 Web 界面。通过 Web 浏览器导航到服务器的端口 55414:http://YOUR_SERVER_IP:55414
service urbackupclientbackend status
如果客户端没有运行,请运行下述命令:service urbackupclientbackend start
最后,通过下述命令将客户端连接到服务器:urbackupclientctl set-settings
-k internet_mode_enabled -v true
-k internet_server -v "YOUR_SERVER_IP"
-k internet_server_port -v "55415"
-k computername -v "YOUR_CLIENT_NAME"
-k internet_authkey -v "YOUR_DEFAULT_AUTHENTICATION_KEY"
请确保"YOUR_CLIENT_NAME"与3-2中设置的主机名相同,"YOUR_DEFAULT_AUTHENTICATION_KEY"是服务器前面生成的键。3-4. 配置服务器。返回 Web 界面,你会发现客户端并不在线,点击顶部导航栏上的“Settings”(设置):点击“Settings”页面上的“Internet”(互联网)页签,检查如下设置:
(如果所有客户端都是本地的,则可以取消“Do image backups over the internet”以及“Do full file backups over the internet”。)滚动到底部并单击保存。3-5. 设置备份目录。在“Settings”页面上,点击“”Client settings(客户端设置)。选中“Separate settings for this client”,在“File Backups”下的“Default directories to backup”中设置你想备份的目录。如果想添加多个目录,可以用分号“;”分隔。
你还可以在此设置备份间隔。点击底部的保存。对于 Linux 客户端,你也可以从客户端的命令行设置:urbackupclientctl add-backupdir -d FILE_PATH
重启服务器:pkill urbackup
urbackupsrv-start
3-6. 重新登录到 Web 界面。到此为止,客户端已经连接好了。可能“File backup status”(文件备份状态)会显示“No paths to backup configured”(没有设置备份路径),但没关系,在第一次完成备份之前,都会这显示。另外请注意,如果你连接的是Linux 客户端,则不支持镜像备份。但是,你可以通过 Linux 客户端运行镜像备份,并设置备份镜像的目录。接下来,你就可以尝试一下备份了!
全部0条评论
快来发表一下你的评论吧 !