企业级系统备份 BackupPC的配置与使用手册(1)


这份指南将会协助你运用 CentOS testing 软件库内的 RPM 来设置 BackupPC。它不会详细地解释 BackupPC 所支持的一切设置。它亦会假设你会设置 BackupPC 通过 rsync 来进行备份。BackupPC 可支持 archive、tar、smb 及 rsyncd 的备份,但这份指南只会专注采用 rsync 的 Linux 主机。BackupPC 拥有论充足的文档关于设置方面的选项,这些指引亦收藏在它的网页界面中。另外,BackupPC 应该驻于一台专用的服务器上,因为 Apache 必须以系统上 BackupPC 用户的身份来执行,而这样会影响网页服务器的正常运作。

系统:CentOS 5.x

参考文件
[ http://backuppc.sourceforge.net/ ]

设置软件库

首先要做的事情就是将 CentOS testing 软件库连同 yum-priorities 插件一并安装。

 # cd /etc/yum.repos.d
# wget http://dev.centos.org/centos/5/CentOS-Testing.repo
# yum install yum-priorities

请依从 wiki 内有关设置 [http://wiki.centos.org/zh/PackageManagement/Yum/Priorities?highlight=(yum)|(priorities)|yum-priorities] 的指引。如果你安装了 RPMFroge 的软件库,你必须确定所有 CentOS Base 项目的优先次序是 1,RPMForge 项目的优先次序是 2,而 CentOS testing 软件库的优先次序是 3。如果你并未安装 RPMForge 软件库,所有 Perl 组件将会下载自 testing 软件库,否则,它们将会来自 RPMForge。要设置 RPM 软件库,请依从 wiki 内有关 [软件库]的指引。

安装 BackupPC

接下来,请安装 BackupPC 的 RPM、Apache、及 mod_perl。Perl 所依赖的一切将会自动被收集起来。

# yum --enablerepo=c5-testing install backuppc httpd mod_perl

设置 Apache

如上述所提及,假若要一切正常地与 CGI 及 mod_perl 运作,Apache 的执行身份必须是安装 RPM 时在系统上所创建的 BackupPC 用户。请你现在就把合适的值设于 httpd.conf 内。

# vim /etc/httpd/conf/httpd.conf
## 更改 User apache 为 User backuppc
User backuppc
Servername backuppc.domain.com:80

存储并离开文件,然后更改被创建于 conf.d 目录下的 backuppc.conf 文件。

# vim /etc/httpd/conf.d/backuppc.conf
## 将 Allow from 127.0.0.1 改为 all
Allow from all

存储并离开这个文件,然后创建你将会用来访问网页界面的用户及密码。

# htpasswd -c /var/lib/backuppc/passwd/htpasswd your_user
New password: your_password
Re-type new password: your_password
Adding password for user your_user

最后,引导 Apache 并设置它于开机时引导。然后浏览你的机器并确定 Apache 可以派出测试页面。

# service httpd start
# chkconfig httpd on

请浏览 http://你的服务器 并确定 Apache 能正常运作。

BackupPC 服务器设置

初次设置时,你必须在命令行上编辑数个参数,额外的你可以通过命令行或网页界面来完成。请打开 BackupPC 的主要配置文件,然后设置下列参数。TopDir 这个路径就是放置实际备份的地地。它的缺省值是 /var/lib/backuppc。我利用一个加密的分区来作备份,因此我的路径是 /srv/backuppc。请按你的需要修改它。

 # vim /etc/BackupPC/config.pl
## BackupPC 缺省的传输方法。
$Conf{XferMethod} = 'rsync';
## 备份数据存放位置的路径。
$Conf{TopDir}      = '/var/lib/backuppc';
## init.d 内用来引导服务器的路径。
$Conf{ServerInitdPath} = '/etc/init.d/backuppc';
$Conf{ServerInitdStartCmd} = '$sshPath -q -x -l root $serverHost$serverInitdPath start';
## 你以 htpasswd 创建获授权的用户。
$Conf{CgiAdminUsers}     = 'your_user';

设置 BackupPC Sudo

backuppc 这位用户须要拥有 sudo 权限来执行 gtar 及 tar 的指令。否则,BackupPC 便不能正确地运作。Sudo 应该已被安装在你的系统上,因此你可以通过 visudo 这个指令来作出所需的修改。

# visudo
## 注释掉 Defaults requiretty
## 加入以下两行。
Defaults !lecture
backuppc ALL=NOPASSWD:/bin/gtar,/bin/tar

存储并离开这个文件,然后重新引导 Apache,引导 BackupPC 并设置它在开机时引导。

# service httpd restart
# service backuppc start
# chkconfig backuppc on

请打开你的浏览器并进到位于 http://你的服务器/backuppc 的 BackupPC 网页界面。你须要以先前创建的用户及密码来登录,然后你便会看见一版关于 BackupPC 服务器一般信息的页面。要不然,请重复你的步骤并确定 Apache 及 BackupPC 的设置皆正确。

BackupPC SSH 金钥

由于我们会专注以 rsync 进行备份,你也许会想为 backuppc 进程创建无须密码的金钥,让它能远程连接到需要备份的主机上。请以 root 的身份在 /var/lib/backuppc 内置立隐藏的 SSH 目录,继而修改权限。

# cd /var/lib/backuppc
# mkdir .ssh
# chown backuppc.backuppc .ssh
# chmod 700 .ssh

接着,请改为 backuppc 这个用户。你须要指定一个指令壳,因为 backuppc 这位用户缺省是没有指令壳的。然后请利用 ssh-keygen 创建没有密码的 SSH 金钥。

# su -s /bin/bash backuppc
bash-3.2$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/var/lib/backuppc/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /var/lib/backuppc/.ssh/id_dsa.
Your public key has been saved in /var/lib/backuppc/.ssh/id_dsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx backuppc@host.domain.name


相关内容

    暂无相关文章