免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7401 | 回复: 2
打印 上一主题 下一主题

rsync在日常备份中的应用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-12 22:07 |只看该作者 |倒序浏览
rsync在日常备份中的应用














由于我们的生产系统有很多服务器和数据库,平时的日常备份很重要。但是没有遇到过灾难时备份最容易被忽略,但是灾难真的发生的时候,备份时最直接最有用的解决方法,虽然难免有部分数据的损失。
     rsync是一款配置简单,功能全面的安全备份软件,具体的功能介绍可以参考手册。
     
   下面介绍rsync在我的生产环境上的部署和应用。
   
     首先介绍下我的工作环境。我负责的是一个webgame项目的运维工作。webgame有很多种架构,通常都是、   javascript/asp/flash/c/c++/erlang/mongodb/mysql/linux等工具组合之后,开发和支撑了整个游戏系统,不过还是以玩家数据和游戏体验为中心。我们项目使用的是mongodb作为后台数据库,所以这里介绍通过rsync备份mongodb到远程备份服务器,mongodb都已经做了主从备份。
下面开始介绍rsync的具体部署。

(一)备份服务器上的步骤
(1)、安装rsync,并通过xinetd管理rsync


       yum install rsync xinetd -y

   (2)、修改/etc/xinetd.d/rsync文件,使其随xinetd启动而启动


      vim /etc/xinetd.d/rsync

      ......将disable = yes 修改为 disable = no

     disable = no

(3)、修改防火墙策略,允许873端口(tcp/udp)


1.#直接修改/etc/sysconfig/iptables ,需要重启防火墙


       -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT


       -A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 873 -j ACCEPT


      /etc/init.d/iptables restart

      #或者使用iptables命令

      iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT

      iptables -A INPUT -p udp -m state --state NEW -m udp --dport 873 -j ACCEPT

(4)、建立rsync的配置文件


      # vim /etc/rsyncd.conf                 没有这个文件的话直接建立


       ......


      secrets file = /etc/rsyncd.secrets   指定允许的用户和用户密码


      motd file = /etc/rsyncd.motd         客户端连接上来时显示的欢迎信息的存放文件

      read only = no                       是否只读

      list = yes                           是否允许客户端能够列出备份服务器上的文件

      uid = root                           指定uid

      gid = wheel                          指定gid

      hosts allow = 113.167.110.33 121.14.145.79 113.109.271.6  允许使用备份服务器的客户端列表,实际环境这个列表很长

      max connections = 100                同时的最大连接数

      log file = /var/log/rsyncd.log       日志文件位置

      pid file = /var/run/rsyncd.pid       进程的pid存放文件位置

      lock file = /var/run/rsync.lock      lock文件位置


      ################################################ 上面的配置是全局的,下面的段会继承上面设定的属性

     [mongobak]                           建立一个备份名,客户端通过该名称指定具体的备份位置

     path = /mongobak                     指定备份文件存放的目录位置

     auth users = test                    允许那些用户,这里的用户test的信息存放在/etc/rsyncd.secrets
       这样一个简单实用的配置就好了
(5)、建立/etc/rsyncd.secrets文件

       #vim /etc/rsyncd.secrets


         ......

         test:rsync-7-elevEn    格式   用户名:密码  该用户不要求是系统用户,
       rsyncd.secrets文件的权限要设定为600
          .....
      #chmod 600 /etc/rsyncd.secrets
(6)、建立连接到服务器的客户端看到的欢迎信息文件/etc/rsyncd.motd


     #vim /etc/rsyncd.motd

       ......

     Welcome to Window Server 2003 IIS

      ......
     这里的信息可以伪造

(7)、启动rsync


       #启动


       /etc/init.d/xinetd restart



      #查看873端口是否起来


      netstat -an | grep 873


      如果rsync启动成功的话可以看到873端口已经在监听了

(二)客户端的操作

(1)确认备份服务器上的rsync确实启动成功并监听网络,可以被外部使用


       #通过nc查看备份服务器的873是否可用

        nc -z -vv Bak_Server_IP 873
(2)、建立认证文件,这里我们建立test用户的密码认证文件/etc/rsync.pass


       vim /etc/rsync.pass

       ......

       rsync-7-elevEn
       ......

     chmod 600 /etc/rsync.pass    修改权限


(3)、连接服务器


#连接rsync 服务器,成功连接可以看到我们上面设定的伪造的欢迎信息



     rsync -av test@Bak_Server_IP::mongobak --password-file=/etc/rsync.pass   会列出服务器上备份目录的内容


(4)、备份数据到rsync服务器

       sync -av --progress  /data/mongodb_bak/201106171856  test@Bak_Server_IP::mongobak --password-file=/etc/rsync.pass

(5)、将备份的数据拿到本地


      sync -av --progress  test@Bak_Server_IP::mongobak/201106171856  /data/mongodb --password-file=/etc/rsync.pass

(6)、备份脚本实例


        #!/bin/bash
         mongodump -d ygfs -o /data/mongodb_bak/4399S2/  #通过mongodump命令备份数据库,备份时间可以看文件修改时间
        sleep 3

        rsync -av --progress  /data/mongodb_bak/4399S2  test@113.107.160.10::mongobak --password-                flie=/etc/rsync.pass                        

        #通过rsync将备份的数据库备份到远程的备份服务器,这里不对mongodump备份出来的数据压缩,因为rsync无法对压缩文件进行增量(更新)备份,这样虽然加大了硬盘空间的消耗,可是可以大大的加快备份速度

     然后将这个脚本加到计划任务中,在深夜执行,就完成了一个安全和系统的备份方案


(三)特别注意

(1)只有在rsync的配置文件允许的ip地址才可以使用rsync服务器
(2)rsync的密码认证文件 /etc/rsyncd.secrets 的权限一定是600
(3)rsync对压缩归档文件不支持增量备份

论坛徽章:
0
2 [报告]
发表于 2011-12-21 22:12 |只看该作者
谢谢分享  希望于楼主多多交流

论坛徽章:
0
3 [报告]
发表于 2014-05-08 10:07 |只看该作者
rsync对压缩归档文件不支持增量备份

是不是对单个文件也不支持增量备份传输呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP