文档章节

Rsync实现主服务器热备份

shiw019
 shiw019
发布于 2016/05/22 16:31
字数 1238
阅读 336
收藏 17

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命令进行同步,下面通过一个实际应用场景来详细讲解,然后再介绍一下详细配置。

二、应用场景

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

 

有两个服务器,
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
     
执行同步命令:
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

© 著作权归作者所有

共有 人打赏支持
shiw019
粉丝 26
博文 6
码字总数 5186
作品 0
朝阳
程序员
私信 提问
rsync+inotify实现服务器之间文件实时同步

之前做了“ssh信任与scp自动传输脚本”的技术文档,此方案是作为公司里备份的方法,但在实际的运行中,由于主服务器在给备份服务器传输的时候,我们的主服务器需要备份的文件是实时、不停的产...

chaun
2016/04/27
102
0
linux系统中rsync+inotify实现服务器之间文件实时同步

之前做了“ssh信任与scp自动传输脚本”的技术文档,此方案是作为公司里备份的方法,但在实际的运行中,由于主服务器在给备份服务器传输的时候,我们的主服务器需要备份的文件是实时、不停的产...

lwaif
2016/03/01
20
0
一键部署rysnc实现全网备份

需要的工具:ansible 批量管理工具 思路: 实现一键自动化安装好rysnc备份服务器,实现全网备份 rysnc配置文件,是在管理机上,推送到我们的rysnc服务器上的,所以我们可以随时可以在管理机修...

啊凯linux
2018/06/28
0
0
50台集群架构配置介绍-2(备份服务器Rsync)

本篇博客 感谢老男孩老师教学 在企业里面首先会先需要备份服务器,来备份数据,以防丢失。 在此,我们在这里介绍Rsync服务器(实现本地拷贝以及远程拷贝) 介绍: Rsync 开源、快速、可实现全量...

gyrgey18912
2017/10/19
0
0
Linux系统Rsync数据同步工具

1.1什么Rsync? Rsync 是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。 Rsync 软件使用于/unix/linux/windows 等多种操作系统平台。 下面是官方的英...

jy1779
2018/07/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Windows同步对象Event和Linux的条件变量

最近在看一些同步对象模拟的东东,特别对在Windows下如何模拟条件变量折腾了很久。 1 Windows同步对象Event 微软有一个很有意思的同步对象,某种程度上和Linux的条件变量很相似。但秉承微软一...

shzwork
15分钟前
1
0
从上往下打印出二叉树的每个节点,同层节点从左至右打印。

//第一种做法 public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList <Integer> li=new ArrayList<Integer>(); ArrayList <TreeN......

南桥北木
25分钟前
1
0
linux 服务管理 Crontba、Ntpdate、Logrotate、Supervisor

crond linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。 另外, 由于使用者自己也可以设置计划任务,所以,...

狼王黄师傅
55分钟前
3
0
Sobel算子和Scharr滤波器

Sobel算子在数学上的本质是微分,对离散信号,是求邻域内的增量。 基本原理:在图像上,对图像信号在某点进行微分,表示图像的某个特征(如,强度、色调或者饱和度)在该点的变换程度。以强度...

yepanl
今天
2
0
Jenkins API 使用

Jenkins 是一款流行的开源持续集成工具,可以用来做一些软件开发的自动化工作,如打包,测试,自动部署等。 Jenkins 中有 view 和 job 的概念, view 相当于组, job 则是具体的任务。 view...

YanWen
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部