1、BackupPC 服务器数据备份方案作者:jason 日期: 2015-05-15 企业服务器的数据都是非常重要的,为了确保安全,我们会做数据库备份,还要考虑应用数据及补丁备份,仅仅是本机备份是不够的,我们还要做异地备份。服务器备份软件很多,有 Amanda、Bacula、Burp,这里,我们只讨论 BackupPC 来做备份服务器。BackupPC 是 Linux 平台下一款非常灵活的开源备份工具,支持 RSYNC、RSYNCD(Win平台使用,官方推荐)、SMB、 SSH、NFS 等多种传输工具,支持增量备份,可以跨目录树跨多次备份去重(md5 验证,节省空间)等多种优点,支持 web 页
2、面管理,有中文语言包。 它工作在 pull 模式下,服务器主动从客户机爬数据。本文档工作环境: Centos 6.4X86_64 最小化安装 BackupPC 3.2(最新版本 3.3) ,这里假设你会配置网络且熟悉简单的 linux 操作。1.在 BackupPC 安装服务器上添加 backuppc 组及用户rootbackuppc # groupadd backuppcrootbackuppc # useradd -g backuppc backuppc2. BackupPC 没有在 Centos 官方库中,我们使用第三方 epel 库,方法如下,根据自己的版本选择其一。rootbacku
3、ppc # # yum -y install openssl*# RHEL/CentOS 6 32-Bit # rootbackuppc # wget http:/download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm# RHEL/CentOS 6 64-Bit # rootbackuppc # wget http:/download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmrootbackuppc # rpm -ivh e
4、pel-release-6-8.noarch.rpm3.使用下面命令查看 epel 是否成功 ,如下图蓝色部分rootbackuppc #yum repolistLoaded plugins: fastestmirror, priorities, securityLoading mirror speeds from cached hostfile* base: * epel: * extras: * updates: repo id repo name statusbase CentOS-6 - Base 6,518epel Extra Packages for Enterprise Linu
5、x 6 - x86_64 11,460extras CentOS-6 - Extras 37updates CentOS-6 - Updates 1,102repolist: 19,1174.使用下面命令安装 BackupPCrootbackuppc # yum -enablerepo=epel install BackupPCLoaded plugins: fastestmirror, priorities, securityLoading mirror speeds from cached hostfile* base: * epel: * extras: * updates: Setti
6、ng up Install ProcessResolving Dependencies Running transaction check- Package BackupPC.x86_64 0:3.3.0-2.el6 will be installed Processing Dependency: perl-Time-modules for package: BackupPC-3.3.0-2.el6.x86_64 Processing Dependency: perl(Time:ParseDate) for package: BackupPC-3.3.0-2.el6.x86_64 Proces
7、sing Dependency: perl(Net:FTP:RetrHandle) for package: BackupPC-3.3.0-2.el6.x86_64 Processing Dependency: perl(Net:FTP:AutoReconnect) for package: BackupPC-3.3.0-2.el6.x86_64 Processing Dependency: perl(File:RsyncP) for package: BackupPC-3.3.0-2.el6.x86_64 Running transaction check- Package perl-Fil
8、e-RsyncP.x86_64 0:0.72-1.el6 will be installed- Package perl-Net-FTP-AutoReconnect.noarch 0:0.3-3.el6 will be installed- Package perl-Net-FTP-RetrHandle.noarch 0:0.2-3.el6 will be installed- Package perl-Time-modules.noarch 0:2006.0814-5.el6 will be installed Finished Dependency ResolutionDependenci
9、es Resolved=Package Arch Version Repository Size=Installing:BackupPC x86_64 3.3.0-2.el6 epel 492 kInstalling for dependencies:perl-File-RsyncP x86_64 0.72-1.el6 epel 100 kperl-Net-FTP-AutoReconnect noarch 0.3-3.el6 epel 11 kperl-Net-FTP-RetrHandle noarch 0.2-3.el6 epel 16 kperl-Time-modules noarch 2
10、006.0814-5.el6 base 38 kTransaction Summary=Install 5 Package(s)Total download size: 657 kInstalled size: 2.9 MIs this ok y/N: YDownloading Packages:(1/5): BackupPC-3.3.0-2.el6.x86_64.rpm | 492 kB 00:00 (2/5): perl-File-RsyncP-0.72-1.el6.x86_64.rpm | 100 kB 00:00 (3/5): perl-Net-FTP-AutoReconnect-0.
11、3-3.el6.noarch.rpm | 11 kB 00:00 (4/5): perl-Net-FTP-RetrHandle-0.2-3.el6.noarch.rpm | 16 kB 00:00 (5/5): perl-Time-modules-2006.0814-5.el6.noarch.rpm | 38 kB 00:00 -Total 138 kB/s | 657 kB 00:04 Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning TransactionInstalling :
12、 perl-Net-FTP-RetrHandle-0.2-3.el6.noarch 1/5 Installing : perl-Time-modules-2006.0814-5.el6.noarch 2/5 Installing : perl-Net-FTP-AutoReconnect-0.3-3.el6.noarch 3/5 Installing : perl-File-RsyncP-0.72-1.el6.x86_64 4/5 Installing : BackupPC-3.3.0-2.el6.x86_64 5/5 warning: /etc/BackupPC/config.pl creat
13、ed as /etc/BackupPC/config.pl.rpmnewwarning: /etc/BackupPC/hosts created as /etc/BackupPC/hosts.rpmnewVerifying : perl-File-RsyncP-0.72-1.el6.x86_64 1/5 Verifying : perl-Net-FTP-AutoReconnect-0.3-3.el6.noarch 2/5 Verifying : perl-Time-modules-2006.0814-5.el6.noarch 3/5 Verifying : perl-Net-FTP-RetrH
14、andle-0.2-3.el6.noarch 4/5 Verifying : BackupPC-3.3.0-2.el6.x86_64 5/5 Installed:BackupPC.x86_64 0:3.3.0-2.el6 Dependency Installed:perl-File-RsyncP.x86_64 0:0.72-1.el6 perl-Net-FTP-AutoReconnect.noarch 0:0.3-3.el6 perl-Net-FTP-RetrHandle.noarch 0:0.2-3.el6 perl-Time-modules.noarch 0:2006.0814-5.el6
15、 Complete!5.修改配置文件 BackupPC.conf,默认安装完后会在/etc/httpd/conf.d/下面生成# Apache 2.2order deny,allowdeny from allallow from all# allow from 127.0.0.1# allow from :1require valid-user6.Apache 的执行身份必须是安装 BackupPC 时在系统上所创建的 backuppc 用户rootbackuppc #htpasswd -c /etc/BackupPC/apache.users backuppcNew password: Re
16、-type new password: Adding password for user backuppcrootbackuppc #6 更改目录的属用户/组rootNagios conf.d# chown -R backuppc:backuppc /etc/BackupPCrootNagios conf.d# chown -R backuppc:backuppc /var/lib/BackupPC7.编辑 BackupPC 主配置文件rootbackuppc #vim /etc/BackupPC/config.pl$ConfCgiAdminUsers = backuppc; 查找到$Conf
17、CgiAdminUsers 在其后面加上backuppc8.启动 Apache 服务并设置自动启动rootbackuppc #Service httpd startrootNagios conf.d# /etc/init.d/backuppc restartShutting down BackupPC: 确定Starting BackupPC: 确定 rootbackuppc #Chkconfig httpd onrootbackuppc #Chkconfig backuppc onrootbackuppc # chkconfig -list httpdhttpd 0:关闭 1:关闭 2:启用
18、 3:启用 4:启用 5:启用 6:关闭rootbackuppc # chkconfig -list backuppcbackuppc 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭rootbackuppc #9.设置 Backuppc 用户运行指定命令运行:visudo修改如下:#查到到 Defaults requiretty,并将其注释掉#并加入以下两行信息.Defaults !lecturebackuppc ALL=NOPASSWD:/bin/gtar,/bin/tar至此服务器端配置完毕。10.Windows 客户端配置Win 服务器下载 cygwin-rsync
19、d 最新版本 ,下载地址如下:http:/ c:rsyncdrsyncd.conf 根据注释docs 例子来增加下面代码,表示你要备份的目录和读取权限。Read only=True 即为只读,false 为可读写,这里说明一下,备份只读权限即可,要还原/恢复要有写入权限。这个Data 就是前面/etc/BackupPC/config.pl 提到的客户机备份目录,要上下对应,根据实际情况设定.修改 rsyncd.conf 的配置文件Data 注:与下面截图中位置的信息保持一致path = /cygdrive/D/software/comment = Data strict modes = fal
20、se auth users = backuppc secrets file = c:/rsyncd/rsyncd.secrets hosts allow = * read only = false list = true修改 rsyncd.secrets 的配置文件#UUU:PPPbackuppc:ac.123456 Win2008 默认开启了防火墙,记得开启 tcp 873 端口11. Linux 客户端配置Linux 客户端设置(Centos 6) 在 web 服务器(需要备份的服务器)上安装 rsync ,方法如下:rootbinjiang# yum install rsyncxinet
21、d 开启守护进程roottestphp # vim /etc/xinetd.d/rsync #将 disable = yes 修改为 no Disable = no 加入防火墙端口 roottestphp # iptables -I INPUT -m state -state NEW -m tcp -p tcp -dport 873 -j ACCEPT roottestphp # service iptables save & service iptables restartroottestphp # iptables-save# Generated by iptables-save v1.4
22、.7 on Fri May 15 11:11:00 2015*filter:INPUT ACCEPT 0:0:FORWARD ACCEPT 0:0:OUTPUT ACCEPT 6:856-A INPUT -p tcp -m state -state NEW -m tcp -dport 873 -j ACCEPT -A INPUT -p tcp -m tcp -dport 80 -j ACCEPT -A INPUT -p tcp -m tcp -dport 8080 -j ACCEPT -A INPUT -m state -state RELATED,ESTABLISHED -j ACCEPT
23、-A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state -state NEW -m tcp -dport 22 -j ACCEPT -A INPUT -j REJECT -reject-with icmp-host-prohibited -A FORWARD -j REJECT -reject-with icmp-host-prohibited COMMIT# Completed on Fri May 15 11:11:00 2015建立 rsync 配置文件Read only=True 即为只读
24、,false 为可读写,这里说明一下,备份只读权限即可,要还原/恢复要有写入权限。roottestphp # vim /etc/rsyncd.confport=873uid = rootgid = rootuserchroot = nomax connections = 200timeout = 60pid file = /var/run/rsyncd.pidlock file = /var/run/rsyncd.locklog file = /var/log/rsyncd.log mail_home path = /home/ ignore errors read only = yes li
25、st = no hosts allow = 192.168.1.0/255.255.255.0 auth users = backuppc secrets file = /etc/rsyncd.secrets mail_www path = /var/www/ ignore errors read only = yes list = no hosts allow = 192.168.1.0/255.255.255.0 auth users = backuppc secrets file = /etc/rsyncd.secrets建立密码文件roottestphp # vim /etc/rsyn
26、cd.secretsroottestphp # chmod 600 /etc/rsyncd.secrets roottestphp # chkconfig xinetd on查看 873 端口是否起来,表示 sync 监听正常roottestphp # /etc/init.d/xinetd restart停止 xinetd: 确定正在启动 xinetd: 确定现在可以进入 IE 管理界面,添加这台备份机器了,这里主要是添加 mail_home 和mail_www 两个目录。以下为对 192.168.1.252 的备份如需还原,点进“备份序列号#”下面的“0 ”,选中要还原的文件然后点选“恢复被选中的文件” ,如下图所示点选“恢复被选中的文件”后跳转至如下图页面,有 3 种恢复选项,第一种是直接恢复至备份目录,前题前面配置 read only = false,如果配置了 true 不能选第一种的。 第二可以下载 zip 压缩包至本地机子上,第三种可以下载 tar 包至本地机子上。