我想设置 Backuppc 来备份所有远程主机的文件。带截图的需求指南将不胜感激。
所有主机都在运行 ubuntu,我需要为保存在他们桌面上的文件设置增量备份。
需要使用 Web GUI 从服务器监控备份状态。
Joh*_*Siu 15
通过 Ubuntu BackupPC 包安装
sudo apt-get install backuppc
Run Code Online (Sandbox Code Playgroud)
这将安装 BackupPC 并自动配置以下内容
Linux User : backuppc (home directory /var/lib/backuppc)
BackupPC daemon will run as this user
HTTP User : backuppc (For web gui http login)
Password is located in /etc/backuppc/htpasswd (See Step 2)
Config file location : /etc/backupc
Data file location : /var/lib/backuppc
Apache will be configured
Web Interface URL : http://<hostname/IP>/backuppc
Run Code Online (Sandbox Code Playgroud)
本指南基于上述安装方法和信息。
如果使用手动安装,在 中config.pl
,查找以下行
set $Conf{CgiAdminUsers} = '';
Run Code Online (Sandbox Code Playgroud)
并更改为
set $Conf{CgiAdminUsers} = 'backuppc';
Run Code Online (Sandbox Code Playgroud)
HTTP 登录/用户备份pc
要在 BackupPC Web 界面中拥有完全的管理权限,必须以用户名backuppc
和密码登录。(这和linux用户不一样。)
Web 界面用户(http 登录)backuppc
是在安装过程中使用随机密码创建的。如果您忘记写下密码,请使用以下htpasswd
方法更改密码
sudo htpasswd /etc/backuppc/htpasswd backuppc
Run Code Online (Sandbox Code Playgroud)
附加用户
添加其他用户
sudo htpasswd /etc/backuppc/htpasswd <username>
Run Code Online (Sandbox Code Playgroud)
在步骤 5 添加客户端中,将 <用户名> 放入moreUsers
字段。当<用户名>登录网页界面时,只会看到他们分配给的客户端。
客户端 SSHD 配置
为了简单起见,客户端机器 sshd 应该允许 root 登录。对于每个客户端/etc/ssh/sshd_config
,请确保存在以下选项且未注释
PermitRootLogin yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
这应该在所有客户端上完成,以加快下一步,正如scp
将要使用的那样。
服务器 SSH KEY 创建和部署
在服务器上,以用户身份登录 backuppc
backuppc@server$ sudo su - backuppc
Run Code Online (Sandbox Code Playgroud)生成具有空传递阶段的 SSH 密钥对
backuppc@server$ ssh-keygen
Run Code Online (Sandbox Code Playgroud)
当要求 phasephase 时,将其留空(按enter)
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Run Code Online (Sandbox Code Playgroud)
这将在 /var/lib/backuppc/.ssh:id_rsa
和.ssh 中生成 2 个文件id_rsa.pub
。您只需要生成一对密钥。
将密钥部署到客户端计算机
复制id_rsa.pub
到客户端机器
backuppc@server$ scp /var/lib/backuppc/.ssh/id_rsa.pub sudo-user@<client machine>:/home/sudo-user/backuppc.id_ras.pub
backuppc@server$ ssh sudo-user@<client machine>
sudo-user@client$ chmod 600 backuppc.id_ras.pub
sudo-user@client$ sudo mkdir /root/.ssh
sudo-user@client$ sudo chmod 700 /root/.ssh
sudo-user@client$ sudo mv backuppc.id_ras.pub /root/.ssh/authorized_keys
sudo-user@client$ sudo chown root:root /root/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)
测试 ssh 连接(在服务器上,作为 Linux 用户 backuppc)
backuppc@server$ ssh root@<client machine>
Run Code Online (Sandbox Code Playgroud)
它不应该要求输入密码。
进行测试很重要,因为这也会将客户端机器指纹添加到 backuppc(linux user) .ssh/known_hosts 列表中。否则当BackupPC(软件)通过ssh连接到客户端时,会提示指纹确认,无法处理,备份过程将失败。
对所有客户端机器重复步骤 3。
此时,服务器用户backuppc
应该能够以 root 身份通过 ssh 进入所有客户端机器,而不会提示输入密码、指纹确认或 passphase。
在Xfer选项卡中,更改以下内容,然后单击顶部的保存
XferMethod: rsync
RsyncShareName: /home
Run Code Online (Sandbox Code Playgroud)
(假设只备份用户主目录)
这将自动应用于所有客户端。
Server
部分,单击Edit Hosts
host
,并始终使用backuppc
for user
,单击Add
以获取更多行。完成后记得点击Save
顶部。从列表中删除 localhost
如果 dhcp 用于台式机,情况就会变得棘手。有几种方法可以解决这个问题
在任何情况下,服务器都需要能够使用 IP 地址或主机名一致地访问(ssh)每个客户端机器。
什么都不做,默认调度会执行
Full Backup every 7 days (FullPeriod: 6.97 day)
Incremental Backup everyday (IncrPeriod: 0.97 day)
Run Code Online (Sandbox Code Playgroud)
向 BackupPC 添加审计接口有向 BackupPC添加仅审计接口的说明。
但是 Ubuntu BackupPC 包中的 index.cgi 是编译的。/usr/share/backuppc/lib/realindex.cgi
应该用于生成audit.cgi
博客中提到的。