希望两台机器指定目录的数据保持一致

192.168.19.252(master)                 192.168.19.251(slave)

/cache

拉复制            推复制

rsync的工作模式

C/S    client/server

B/S    browse/server

拉复制

从服务器定期去主服务器获取数据

crontab+rsync

工作过程

1   从服务器发起连接                   ip  port

2   主服务器                           固定ip  开放port(开服务)

3   需要授权                           user password

制作rsync服务

服务器端:

1、编辑配置文件

mkdir /etc/rsyncd

vim /etc/rsyncd/rsyncd.conf

uid=root

gid=root

port=873

max connections=0

log file=/var/log/rsyncd.log

pid file=/var/run/rsyncd.pid

lock file=/var/run/rsyncd.lock

motd file=/etc/rsyncd/rsyncd.motd

read only=yes

hosts allow=192.168.19.0/24

hosts deny=*

[www]

path=/cache

list=yes

ignore errors

auth users=danny

secrets file=/etc/rsyncd/rsyncd.secrets

##如果没有生成日志文件,加上下面几行

transfer logging=yes

log format=%t %a %m %f %b

syslog facility=local3

2、创建所需文件

1)欢迎页面

Vim /etc/rsyncd/rsyncd.motd

###########

##welcome##

###########

2)创建共享目录

Mkdir /cache

3)创建密码文件并修改其权限(否则客户端无法完成验证)

vim /etc/rsyncd/rsyncd.secrets

chmod 600 /etc/rsyncd/rsyncd.secrets

danny:123456

3、启动rsync服务

rsync --daemon --config=/etc/rsyncd/rsyncd.conf

4、查看服务有没有运行

lsof -i:873

客户端操作:

1、创建接收目录

Mkdir  /cache

2、拉取数据:

语法:rsync –avzP –delete –password-file=/path/filename username@Server::共享资源名称 /cache

rsync -avzP --delete --password-file=/etc/rsyncd.pw danny@192.168.19.252::www /cache

-a参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件

-z,传输时压缩

-P,传输进度,782448  “63%  110.64kB/s    0:00:04”

-v,传输时显示传输的文件名及其简要信息

--delete  在目标文件中删除额外的文件。

这里需要注意别忘了去创建密码文件并修改权限(必须设为600)

Vim /etc/rsyncd.pw

123456

Chmod 600 /etc/rsyncd.pw

3、结合crontab定时拉取数据

Crontab –e

* * * * * rsync -avzP --delete --password-file=/etc/rsyncd.pw danny@192.168.19.252::www /cache

配置过程中容易发生的错误:

服务器和客户端的密码文件没有被设置为600

拉复制的特点:

服务器端定义共享什么目录、共享资源名、认证用户、认证密码等

客户端定义间隔多长时间拉取服务器指定目录的数据,如果间隔时间为毫秒级时,同步小文件没有问题,但同步大文件时可能会造成数据不一致,且两端系统资源的消耗可能会比较大。

说明rsync在毫秒级同步时传输大文件会导致数据不一致的情况:

1、客户端编辑脚本如下:

Vim pull.sh

#!/bin/bash

While :

Do

Rsync –avzP –delete –password-file=/etc/rsyncd.pw cjk@192.168.19.252::www /cache

Sleep 0.001  #太快了,可以改为0.01

Done

2、给脚本加执行权限

3、结合周期性计划任务执行脚本

4、在服务器端/cache目录中使用dd创建一个2G的大文件

5、文件传输后通过md5sum filename对比两文件的MD5值,会发现不同

推复制

监测到指定目录数据变化,即同步给远程主机。

配置:

本机安装配置监测软件;远程主机上配置rsync服务。

实验环境:rhel6.7

目的:监测到19.252上/cache目录发生变化后同步给19.251的/cache目录

操作:

192.168.19.252上:(服务器端)

1、将配置文件远程拷贝到19.251上(推复制本机不需要配置rsync服务,只需要一个密码文件即可)

Scp  -r /etc/rsyncd root@192.168.19.251:/etc/

2、解压监测软件

Tar –xf sersync…..tar –C /usr/src

解压之后有两个文件,confxml.xml(配置文件)和sersync2(执行文件)

3、配置检测软件的配置文件:

<sersync>

<localpath watch="/cache">

<remote ip="192.168.19.251" name="www"/>

<!--<remote ip="192.168.8.39" name="tongbu"/>-->

<!--<remote ip="192.168.8.40" name="tongbu"/>-->

</localpath>

<rsync>

<commonParams params="-artuz"/>

<auth start="true" users="danny" passwordfile="/etc/rsyncd.pw"/>

<userDefinedPort start="false" port="874"/><!-- port=874 -->

<timeout start="false" time="100"/><!-- timeout=100 -->

<ssh start="false"/>

</rsync>

4、创建配置文件中指定的密码文件,并将权限修改为600  

vim /etc/rsyncd.pw

123456

chmod 600 /etc/rsyncd.pw

5、运行检测软件

cd /usr/src/GUN-linux-x86

./sersync2 –r &    ##-r可以看到启动过程,第一次启动时将被监控目录所有数据整体同步到rsync server上

192.168.19.251上:(客户端)

1、删除原先本机上存在的密码文件:

Rm –fr /etc/rsyncd.pw

2、修改rsync配置文件(仅一行):

Read only=no  开放可写的权限

3、保证已存在/cache目录

mkdir –p /cache

4、保证密码文件权限是600

chmod 600 /etc/rsyncd/rsyncd.secrets

5、运行rsync服务

rsync –daemon –config=/etc/rsyncd/rsyncd.conf

测试:

在252上的/cache目录中创建大文件,并生成md5校验码,251上会通不过去且MD5码相同

在252上的/cache目录中创建1000个小文件,会发现251上同步的比较慢

在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。

Rsync的命令格式可以为以下六种

  rsync [OPTION]... SRC DEST

  rsync [OPTION]... SRC [USER@]HOST:DEST

  rsync [OPTION]... [USER@]HOST:SRC DEST

  rsync [OPTION]... [USER@]HOST::SRC DEST

  rsync [OPTION]... SRC [USER@]HOST::DEST

  rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

  

对应于以上六种命令格式,rsync有六种不同的工作模式:

  1)拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:rsync -a /data /backup

  2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:rsync -avz *.c foo:src

  3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:rsync -avz foo:src/bar /data

  4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:rsync -av root@172.16.78.192::www /databack

  5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync -av /databack root@172.16.78.192::www

  6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://172.16.78.192/www

rsync实现数据同步的更多相关文章

  1. sersync+rsync实时数据同步

    sersync+rsync实时数据同步 1.相关背景介绍 前面有关文章配置实现了rsync增量同步以及配置为定时同步,但是在实际生产环境中需要实时的监控数据从而进行同步(不间断同步),可以采取inot ...

  2. 【linux运维】rsync+inotify与sersync+rsync实时数据同步笔记

    Rsync(remote sync)远程同步工具,通过rsync可以实现对远程服务器数据的增量备份通过,但rsync自身也有缺陷,同步数据时,rsync采用核心算法对远程服务器的目标文件进行对比,只进 ...

  3. sersync+rsync进行数据同步

    一:环境 操作系统环境:redhat6.6 内核版本:2.6.32-358.el6.x86_64 rsync server:192.168.2.3(部署rsync server) rsync clie ...

  4. Linux系统备份还原工具4(rsync/远程数据同步工具)

    rsync即是能备份系统也是数据同步的工具. 在Jenkins上可以使用rsync结合SSH的免密登录做数据同步和分发.这样一来可以达到部署全命令化,不需要依赖任何插件去实现. 命令参考:http:/ ...

  5. rsync 远程数据同步工具详解

    rysnc 命令用法:(OPTION-参数,USER-用户,HOST-IP地址,SRC-复制源位置,DEST-复制目标位置)Shell拉:rsync [OPTION] [USER@]HOST:SRC ...

  6. linux之rsync远程数据同步备份

    rsync服务是一种高效的远程数据备份的工具,该服务的port号为873, 是Liunx下的一种非独立服务.由xinetd超级服务管理,取代监听873port. 长处: 1.rsync能够利用ssh和 ...

  7. 归档 SCP SFTP RSYNC(数据同步)

    tar 选项  目标文件  源文件(1 2 3) tar cf **.tar file1 file2 file3 (默认情况下 cf选项只有归档没有压缩) tar xf 从归档中提取 创建tar的存档 ...

  8. Rsync+sersync 数据同步指南

    (1):sersync 可以记录下被监听目录中发生变化的(包括增加.删除.修改)具体某一个文件或 某一个目录的名字: (2):rsync 在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变 ...

  9. Rsync+inotify 数据同步应用指南

    Rsync+Inotify-tools (1):Inotify-tools 只能记录下被监听的目录发生了变化(包括增加.删除.修改),并没有 把具体是哪个文件或者哪个目录发生了变化记录下来: (2): ...

随机推荐

  1. 搭建LNMP环境(CentOS 6)

    本文档介绍如何使用一台普通配置的云服务器ECS实例搭建LNMP平台的web环境. Linux:自由和开放源码的类UNIX操作系统. Nginx:轻量级网页服务器.反向代理服务器. MySQL:关系型数 ...

  2. Echo团队Alpha冲刺随笔 - 第三天

    项目冲刺情况 进展 完成了三分一左右,前端整体页面框架已有,后端也在稳步推进 问题 今天问题较少,主要还是出在对于框架的掌握上 心得 继续加油! 今日会议内容 黄少勇 今日进展 实现社区公告,个人信息 ...

  3. bat无故报错打印混乱的解决

    1. 下面语句加了一个无意义的ping操作.不加的时候经常报错,报操作数不是数字,实际上打印发现NOW值和格式并没有错误.怀疑是下面操作数太多了,而执行速度又太快,导致执行时总是很容易出错.通过增加一 ...

  4. linux驱动编写之中断处理

    一.中断 1.概念 学过单片机的应该非常清楚中断的概念,也就是CPU在正常执行程序过程中,出现了突发事件(中断事件),于是CPU暂停当前程序的执行,转去处理突发事件.处理完毕后,CPU又返回被中断的程 ...

  5. Hive 数据的导入导出

    数据的导入: 通过文件导入,使用load命令 一.导入本地文件: load data local inpath '/home/hadoop/files/emp.txt' overwrite into ...

  6. Luogu2178 NOI2015 品酒大会 SA、并查集

    传送门 感觉题目讲的很不清楚-- 题目意思就是给出一个长度为\(n\)的字符串,求对于\(r=0,1,...,n-1\),求出\(LCP(suffix_p,suffix_q) \geq r\)的无序数 ...

  7. Luogu4423 BJWC2011 最小三角形 平面最近点对

    传送门 题意:给出$N$个点,求其中周长最小的三角形(共线的也计算在内).$N \leq 2 \times 10^5$ 这道题唤起了我对平面最近点对的依稀记忆 考虑平面最近点对的分治,将分界线两边的求 ...

  8. [转]Linux下安装Java环境配置步骤详述

    1.下载jdk8 登录网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 选择 ...

  9. MySQL数据库服务器(YUM)安装

    1. 概述2. 部署过程2.1 虚拟机console的NFS服务端配置2.2 虚拟机node15的NFS客户端配置2.3 虚拟机安装MySQL环境2.4 配置MySQL3. 错误及解决3.1 启动失败 ...

  10. 我的devops实践经验分享一二

    前言 随着系统越来越大,开发人员.站点.服务器越来越多,微服务化推进,......等等原因,实现自动化的devops越来越有必要. 当然,真实的原因是,在团队组建之初就预见到了这些问题,所以从一开始就 ...