Rsync实现主服务器热备份

Rsync全称是remote synchronize,也就是远程同步工具。官网介绍,“rsync is an open source utility that provides fast incremental file transfer. (rsync是一款提供快速增量文件传输的开源工具)”。主要用来解决服务器间文件拷贝或目录同步的问题。最常见的应用场景就是服务器热备份。目前最新版本3.1.2在2015年12月发布,但是阿里云服务器yum源还是3.0.9。

一、rsync应用基础
常用场景:
    1,本地磁盘镜像;
    2,远程服务器增量备份;
    3,资源站匿名镜像;
搭配软件:
    cron(定时任务)
    lsyncd(实时同步工具)
类似功能软件: 
    lsyncd,scp,sftp,rcp等
Rsync几种用法
    1,本地同步:
        rsync –vr --delete /from_disk1/  /to_disk2/
        -v 表示显示详细同步信息
        -r 表示递归到子目录
        --delete 表示删除文件操作也会被同步
 
    2,远程同步通过ssh协议
        本地文件同步到远程服务器
         rsync –r –-delete /data/from/ root@192.168.1.23:/data/to/
        远程服务器文件目录同步到本地
        rsync –r –delete root@192.168.1.23:/data/to/  /data/from
        执行过程中需要输入密码,和ssh登录一样
    3,远程同步通过socket协议,也就是 rsync -–daemon,该用法最常用,需要配置服务端,客户端通过rsync命令进行同步,下面通过一个实际应用场景来详细讲解,然后再介绍一下详细配置。

二、应用场景

我们就来说说最简单的主服务器热备份实现方案吧

161829_R6k8_146046.png

 

有两个服务器,
Main Server是主服务器,正常状况下对外提供服务,新功能直接上线到该服务器
HotBackUp Server 是热备份服务器,当主服务器出现异常时,所有访问立马切换到该服务器,代码和资源需要和主服务器保持一致
        那么就存在这么几个问题(这里假设只考虑代码和静态资源文件,数据库是独立的):
1,    当主服务器新上线代码是,热备服务器如何保持一致
2,    用户将图片上传到主服务器,热备服务器如何保持一致
       这个时候rsync就可以排上用场了:
        解决方案一:
            1,热备服务器上配置 rsync server服务
            2,主服务器通过cron设置定时任务,每分钟执行rsync命令,将服务目录同步到热备服务器
        解决方案二:
             1,主服务器上配置rsync server 服务
             2,热备服务器通过cron设置定时任务,每分钟执行rsync命令,将主服务器目录同步到本地
        解决方案三:
            1,热备服务器上配置rsync server服务
            2,主服务器启动lrsync服务,实时监听目录变动,将变动文件同步到热备服务器
具体方案的选择,就需要根据网站自身业务来选定了,有了方案,我们接下来聊聊具体如何配置吧

三、配置和应用
1,    Rsync Server端配置,ip为192.168.2.33,在/etc/ 目录下新建一个rsyncd.conf,内容如下
log file = /var/log/rsyncd.log 
pid file = /var/run/rsyncd.pid 
lock file = /var/run/rsync.lock
secret file = /var/run/rsync.pass
[wwwroot] 
path = /www/html 
hosts allow = 192.169.2.171 
uid = root 
gid = root
port=874
auth users = test_sync
read only = no
在/var/run/ 目录下新建一个rsync.pass文件,写入用户名和密码’test_rsync:12345678’,并且修改权限为600
服务端启动方式:rsync –daemon (默认配置文件是/etc/rsyncd.conf)
也可指定配置文件启动:/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf

2,    rsync客户端同步
    创建一个密码文件/etc/rsync.pass,写入密码’12345678’,并修改权限为600
     162607_LXi0_146046.png
执行同步命令:
rsync -avH --delete --progress /data/shiwei/platforms/ test_rsync@192.168.2.33::wwwroot --password-file=/etc/rsync.pass
如果需要定时同步,这里可以通过定时任务工具cron来设置定时执行
新建一个执行该命令的shell文件,/root/rsync.sh,修改为可执行权限”chmod +x /root/rsync.sh”,编辑内容如下:
#! /bin/bash
rsync -avH --delete --progress /data/shiwei/platforms/ test_rsync@192.168.2.33::wwwroot --password-file=/etc/rsync.pass
vi打开/etc/crontab,加入如下一行,就可以
*/1 * * * * root /root/rsync.sh
这样每分钟开始时,就会执行自动同步了

参考:
官网:https://rsync.samba.org/
Rsync配置项说明(全英文哦):https://download.samba.org/pub/rsync/rsyncd.conf.html
Lsyncd+sync实现实时同步:http://www.oschina.net/question/54100_137632
linux下远程传输文件的方式sftp.scp,rsync,rcp  http://www.2cto.com/os/201109/104734.html

转载于:https://my.oschina.net/shiw019/blog/679370

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值