在 Rocky Linux 8 上安装和配置 BackupPC

在本指南中,我们将学习如何在 Rocky Linux 8 上安装和配置 BackupPC。 BackupPC 是一个高性能的企业级备份软件套件,具有基于 Web 的前端,可用于备份 Linux、Windows 和 mac OSX PC 和笔记本电脑到服务器的磁盘。

BackupPC 的一些功能包括:

  • 提供了一个 网页界面 它允许管理员查看日志文件、配置、当前状态,并允许用户启动和取消备份以及浏览和从备份中恢复文件。
  • 它支持 重复数据删除:相同或不同 PC 的多个备份中的相同文件仅存储一次,从而大大节省了磁盘存储和磁盘 I/O。
  • 它支持数据 压缩:由于只有新文件(尚未合并)需要压缩,因此对 CPU 时间的影响不大。
  • 这是 开源:BackupPC 托管在 Github 上,并在 GPL 许可下分发。
  • 不需要客户端软件。

在关于 BackupPC 页面上阅读有关 BackupPC 功能的更多信息。

在 Rocky Linux 8 上安装和配置 BackupPC

运行系统更新

更新您的系统包。

dnf update

在 Rocky Linux 8 上安装 BackupPC

BackupPC 4 在 EPEL 存储库上可用。 因此,通过运行命令在 Rocky Linux 8 上安装 EPEL 存储库;

dnf install epel-release

EPEL 存储库提供了 BackupPC 4.3.2,这是撰写本文时的当前稳定版本。

dnf info backuppc
Available Packages Name         : BackupPC Version      : 4.4.0 Release      : 1.el8 Architecture : x86_64 Size         : 489 k Source       : BackupPC-4.4.0-1.el8.src.rpm Repository   : epel Summary      : High-performance backup system URL          : https://backuppc.github.io/backuppc/index.html License      : GPLv2+ Description  : BackupPC is a high-performance, enterprise-grade system for backing up Linux              : and WinXX and Mac OS X PCs and laptops to a server's disk. BackupPC is highly              : configurable and easy to install and maintain.              :               : NOTE: Proper configuration is required after install, see README.setup for more              : information. 

另外,启用 PowerTool Repos;

dnf config-manager --set-enabled powertools

您可以通过执行以下命令简单地安装 BackupPC 及其所有必需的依赖项;

dnf install -y backuppc

在 Rocky Linux 8 上配置 BackupPC 服务器

定义 BackupPC 备份协议

BackupPC 支持不同的协议来从被备份的设备中获取备份数据:

  • 中小企业 – 用于备份 Windows 机器
  • 柏油 – 用于备份 Linux/Unix/Mac OSX 系统
  • 同步 – 用于备份 Linux/Unix/Mac OSX 系统。 这也可用于备份 Windows 系统。

它还支持使用 ftp 协议。 然而,使用 FTP 不是推荐的备份方法。

要定义首选的 BackupPC 备份协议,请打开 BackupPC 配置文件, /etc/BackupPC/config.pl 并导航到您要使用的特定备份协议的部分。

vim /etc/BackupPC/config.pl

例如,Rsync{d} 协议配置部分开始于;

... ########################################################################### # Rsync/Rsyncd Configuration # (can be overwritten in the per-PC log file) ########################################################################### ...

并在 FTP 配置开始处结束;

... ... ########################################################################### # FTP Configuration # (can be overwritten in the per-PC log file) ########################################################################## ...

使用 rsync 备份协议,确保 同步 已安装 在正在备份的客户端上 并且为参数定义了正确的路径, $Conf{RsyncClientPath.

您可以使用以下命令找到 rsync 的绝对路径 which 命令。

which rsync
/usr/bin/rsync

因此,客户端路径应该设置为:

$Conf{RsyncClientPath} = "/usr/bin/rsync";

还要确保备份传输方法, $Conf{XferMethod, 对于客户端设置为 rsync.

$Conf{XferMethod} = "rsync";

定义 BackupPC 客户端备份用户

默认情况下,BackupPC 使用备份客户端上的 root 用户进行备份。

$Conf{RsyncSshArgs} = ['-e', '$sshPath -l root'];

允许通过低权限用户进行备份更安全。

在这个演示中,我们将创建一个非特权用户, backuppc, 对每个客户端进行备份 which is only allowed to run rsync command with sudo rights 用于备份目的。 因此,相应地更改此用户。

$Conf{RsyncSshArgs} = ['-e', '$sshPath -l backuppc'];

我们将使用默认选项保留其他 Rsync 设置。 请注意,所有这些都可以通过要备份的每台 PC 配置进行覆盖。

配置 BackupPC 管理用户

BackupPC 的默认管理用户在 CGI 用户界面配置设置部分下定义。 普通用户只能访问特定于其主机的信息。 他们还可以启动/停止/浏览/恢复备份。 管理用户拥有对所有主机的完全访问权限,以及总体状态和日志信息。

在这个演示中,我们设置了 kifarunixadmin 用户作为 BackupPC admin.

$Conf{CgiAdminUsers}     = 'kifarunixadmin';

更改备份数据目录

默认情况下,BackupPC 将备份数据写入 /var/lib/BackupPC 目录。

$Conf{TopDir}      = '/var/lib/BackupPC/';

万一您需要更改备份数据存储到外部硬盘驱动器的位置,例如,建议不要更改 TopDir 路径,而是创建指向新位置的符号链接,或将新的 BackupPC 存储安装在现有 $ Conf{TopDir} 路径。

例如,假设你有一个空驱动器,/dev/sdb1 就像我们的例子一样,那么你可以简单地将它挂载到, /var/lib/BackupPC/.

mount /dev/sdb1 /var/lib/BackupPC/

要在启动时自动挂载,请使用下面一行的条目更新 /etc/fstab;

/dev/sdb1 /var/lib/BackupPC xfs defaults 1 2

相应地更新文件系统。

Save 并退出文件。

配置备份PC Apache 验证

备份PC用途 Apache 默认情况下作为 Web 服务器,它与 BackupPC 本身一起安装。 它还通过以下方式实现对 BackupPC Web 界面的限制访问 Apache 基本认证。

因此,您可以打开 BackupPC Apache 配置, /etc/httpd/conf.d/BackupPC.conf,这是默认创建的并进行您喜欢的更改。 例如,这些是我们所做的一些更改, AuthUserFileAuthName.

vim /etc/httpd/conf.d/BackupPC.conf
... AuthType Basic AuthUserFile /etc/BackupPC/.backuppc AuthName "Kifarunix BackupPC Restricted Access"  <IfModule mod_authz_core.c> ...

要允许外部访问 BackupPC,请更改行, Require localRequire all granted.

... <IfModule mod_authz_core.c>   # Apache 2.4   <RequireAll>     Require valid-user     <RequireAny>       #Require local       Require all granted     </RequireAny>   </RequireAll> </IfModule> ...

Save 并退出配置文件。

创建 BackupPC 身份验证用户和密码,并将它们存储在由值指定的文件中 AuthUserFile 上面的参数。

例如,要创建名为的 Web 身份验证用户 kifarunixadmin;

htpasswd -c /etc/BackupPC/.backuppc kifarunixadmin

您可以添加另一个用户,例如 kifarunixuser.

htpasswd /etc/BackupPC/.backuppc kifarunixuser

调整auth用户文件的权限;

chmod 666 /etc/BackupPC/.backuppc

更改用户 Apache 运行从 apachebackuppc 并将该组保留为 apache;

vim /etc/httpd/conf/httpd.conf
... User backuppc Group apache ...

禁用 Apache 欢迎页面;

mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.old

禁用目录列表;

sed -i 's/Options Indexes FollowSymLinks/Options -Indexes +FollowSymLinks/' /etc/httpd/conf/httpd.conf

查看 Apache 对于任何错误;

httpd -t
Syntax OK

启动并启用 Apache 在系统启动时运行;

systemctl enable --now httpd

运行 BackupPC

完成配置后,启动并启用 BackupPC 以在系统启动时运行;

systemctl enable --now backuppc

检查状态;

systemctl status backuppc
● backuppc.service - BackupPC server    Loaded: loaded (/usr/lib/systemd/system/backuppc.service; disabled; vendor preset: disabled)    Active: active (running) since Tue 2021-07-06 20:38:48 EAT; 4s ago  Main PID: 20269 (BackupPC)     Tasks: 1 (limit: 23673)    Memory: 9.6M    CGroup: /system.slice/backuppc.service            └─20269 /usr/bin/perl /usr/share/BackupPC/bin/BackupPC  Jul 06 20:38:48 elk.kifarunix-demo.com systemd[1]: Started BackupPC server.

您还可以使用以下命令验证 BackupPC 是否正在运行 BackupPC_serverMesg.

所有 BackupPC 程序都应以 BackupPC 用户身份运行,即 backuppc 默认情况下由定义 $Conf{BackupPCUser} 范围。

backuppc 用户外壳设置为 /sbin/nologin 默认情况下,要以 backuppc 用户身份运行 BackupPC 程序,请查看以下命令的运行方式。

sudo -u backuppc /usr/share/BackupPC/bin/BackupPC_serverMesg status info
sudo -u backuppc /usr/share/BackupPC/bin/BackupPC_serverMesg status hosts
sudo -u backuppc /usr/share/BackupPC/bin/BackupPC_serverMesg status jobs

根据 BackupPC 文档,如果这些命令的输出没有“look cryptic and confusing, and the output doesn't look like an error message, then all is ok“。

访问 BackupPC Web 用户界面

要从浏览器访问 BackupPC,您需要先允许 Apache 防火墙上的外部访问(如果启用了防火墙);

firewall-cmd --add-service={http,https} --permanent
firewall-cmd --reload

确保 Apache Web 服务器正在运行之前,您可以访问 BackupPC Web 界面。

您现在可以通过 URL 访问 BackupPC https://server_IP_OR_hostname/backuppc.

进行身份验证并进入 BackupPC Web 仪表板。

BackupPC 网络仪表板。

如果您以非身份验证到 BackupPC Web 界面 admin 用户,例如, kifarunixuser 在这个演示中,你可以看到这样一个界面。

您已经成功安装了 BackupPC 4.4.0 这使我们到了如何在 Rocky Linux 8 上安装和配置 BackupPC 的指南的结尾。

参考

在文档页面上阅读更多 backuppc。

BackupPC 文档:安装 BackupPC

您还可以从仪表板访问文档。

在接下来的指南中,我们将学习如何使用 BackupPC 服务器备份 Linux 系统。

使用 BackupPC 通过 SMB 备份 Windows 系统

使用 Rsyncd 使用 BackupPC 备份 Windows 系统

在 Debian 10 上安装和配置 BackupPC

如何在 Ubuntu 18.04 上安装和配置 BackupPC 作为备份服务器