如何在 ubuntu 12.04 中配置 Backuppc?

kar*_*k87 10 backup backuppc

我想设置 Backuppc 来备份所有远程主机的文件。带截图的需求指南将不胜感激。

细节:

  • 所有主机都在运行 ubuntu,我需要为保存在他们桌面上的文件设置增量备份。

  • 需要使用 Web GUI 从服务器监控备份状态。

Joh*_*Siu 15

大纲

  1. 安装
  2. BackupPC 网络用户
  3. 客户端连接准备 - 设置 SSH-KEY
  4. 配置BackupPC备份Client的/home目录
  5. 添加客户端
  6. 备份计划

一、安装

通过 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)

2. BackupPC 网页用户

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字段。当<用户名>登录网页界面时,只会看到他们分配给的客户端。

3. 客户端连接准备 - 设置 SSH-KEY

客户端 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 创建和部署

  1. 在服务器上,以用户身份登录 backuppc

    backuppc@server$ sudo su - backuppc
    
    Run Code Online (Sandbox Code Playgroud)
  2. 生成具有空传递阶段的 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。您只需要生成一对密钥。

  3. 将密钥部署到客户端计算机

    复制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

4.配置BackupPC备份Client的/home目录

  1. 打开 BackupPC Web GUI
  2. 在左侧面板的服务器部分,单击编辑配置
  3. 在右侧面板上,单击Xfer选项卡
  4. Xfer选项卡中,更改以下内容,然后单击顶部的保存

    XferMethod: rsync
    RsyncShareName: /home
    
    Run Code Online (Sandbox Code Playgroud)

    (假设只备份用户主目录)

  5. 这将自动应用于所有客户端。

    截屏

5. 添加客户端

  1. 打开 BackupPC Web GUI
  2. 在左侧面板的Server部分,单击Edit Hosts
  3. 对于每台机器,在 下填写主机名或 IP 地址host,并始终使用backuppcfor user,单击Add以获取更多行。完成后记得点击Save顶部。
  4. 从列表中删除 localhost

    截屏

    如果 dhcp 用于台式机,情况就会变得棘手。有几种方法可以解决这个问题

    1. 配置 dhcpd 为​​它们分配静态 IP
    2. 将台式机更改为使用静态 IP
    3. 配置动态 dns 更新

    在任何情况下,服务器都需要能够使用 IP 地址或主机名一致地访问(ssh)每个客户端机器。

6. 备份计划

  1. 打开 BackupPC Web GUI
  2. 在左侧面板的服务器部分,单击编辑配置
  3. 在右侧面板上,单击“计划”选项卡
  4. 什么都不做,默认调度会执行

    Full Backup every 7 days (FullPeriod: 6.97 day)
    Incremental Backup everyday (IncrPeriod: 0.97 day)
    
    Run Code Online (Sandbox Code Playgroud)

    截屏

7. 添加审计接口

向 BackupPC 添加审计接口有向 BackupPC添加仅审计接口的说明。

但是 Ubuntu BackupPC 包中的 index.cgi 是编译的。/usr/share/backuppc/lib/realindex.cgi应该用于生成audit.cgi博客中提到的。