Rsync 数据同步工具

一、Rsync简介

1.检测一下你的机器上是否已经安装  --->可以通过yum安装  或者  源码

Server  192.168.201.151

Client   192.168.201.152

yum -y install rsync

2.Rsync 介绍

2.1 什么是Rsync

是一款开源(免费  源代码完全公开)、快速、多功能的,可以实现全量和增量的本地或者远程的数据同步的工具

全量:全部(后期修改--->也会把没有改变的地方再次进行cp  mv等)

增量:只是对修改的内容、新增加的内容进行cp  mv等

适用于Unix/Linux/Windows等OS

3.Rsync简介

Rsync英文全称Remote synchronization,从软件的名称就可以看出来,Rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像,远程备份的功能,这个功能类似ssh带的scp命令,但又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝。当然,Rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这又类似cp命令,但同样也优于cp命令,cp每次都是全量拷贝,而rsync可以增量拷贝。

小提示:利用rsync  还可以实现删除文件目录的功能   不仅相当于cp/scp命令  还相当于rm命令

默认情况下  rsync使用自己独特算法“quick check” 仅同步大小或者最后修改时间发生变化的文件或者目录  也可以根据目录文件的权限(属组  属主等)  需要制定参数

4.Rsync的特性

a)支持拷贝特殊文件 (链接文件)、设备等

b)相当于打包命令   指定内容进行同步(排除)

c)可以做到保持原文件 或者目录的权限 时间  软硬链接 属主 属组等特性(硬链接 绝对不能对目录进行创建 本身就是复制产物  软链接--->快捷方式)

d)可以实现增量同步  效率高

e)可以使用rcp  rsh  ssh等方式来配合文件传输(rsync本身对文件数据 不加密)

f)可以通过socket的方式进行文件传输(服务器+客户端)

daemon进程 守护进程--->从开机-关机  不停的提供服务  保证服务的正常

什么是socket???--->套接字?

每个服务 启动后 监听一个端口号?  Ssh --22  mysql--3306

UDP  TCP 传输

TCP---一对一的链接  每一个链接都是一个socket

UDP---一对多       所有人在一个socket里

g)支持匿名的或者认证方式进行远程传输

5.应用场景--同步

a) 两台服务器之间进行数据同步 --->crond+rsync  计划任务+备份数据

针对某个公司重要数据备份  混乱状态 和 领导提出备份全网数据的解决方案

通过本地打包备份--tar   然后结合rsync结合inotify应用  把全网数据统一备份到一个固定的存储服务器  存储服务器利用脚本  定时检查并且报告给管理员

定时将IDC数据备份到其他的地方(云端 内部)   防止机房 地震 火灾--->容灾

b)实时同步 (解决存储服务器的单点问题)

利用rsync+inotify  做实时同步

还可以通过DRBD的方案 实现双机

Rsync  sersync  inotify   DRBD

选择B方案进行备份--->后期检查---> 只有检查办公室服务器  就能确保备份和主服务器数据都是好的

选择2号方案    跨机房--->带宽问题 底下更迅速

二、Rsync的工作方式

从实际工作角度进行划分

Rsync分成三种数据传输模式:

1)单个主机本地之间的数据传输   类似cp命令

2)借助ssh等通讯信道进行传输    类似scp命令

3)以守护进程socket的方式传输数据   rsync自身的重要功能

1、本地数据传输方式(local-only mode)

语法结构: rsync [OPTION...] SRC... [DEST]

cp   -a         test.txt   test2.xt

例一:把系统的hosts文件同步到/opt命令下

例二:把opt目录拷贝到/mnt2下

相当于 cp -ap /opt /mnt2

---->-avz = -ap(a-保持文件原有属性进行复制   p-不要链接文件)

相当于rm命令

rsync -avz --delete /lol/ /opt/

由上可以看出当后者/opt/中的文件在前者/lol/中没有,则在同步的时候会被删除

三、借助ssh通道在不同的主机上进行数据传输

实例1: 推送,将当前主机内容推送到远程主机

-e ‘ssh -p 22’  表示以ssh的方式通过22端口进行推送  如果不写默认是22端口

企业中 web  apache  nginx-->使用docker虚拟化--->每一个镜像映射---> 22--->200-299端口

实例2:将远程主机内容拉取到本地

参数:

-avz 相当于-vzrtopgDI  表示同步时文件和目录属性不变

-P 显示同步的过程  可以用--progress代替

注意:文件目录后面需要添加/

四、Rsync 命令常用的参数选项

-v, --verbose  详细模式输出  传输时的进度等信息

-z, --compress 传输时进行压缩 来提高传输效率 --compress-level =NUM  可以指定级别压缩

-a,--archive 归档模式  表示以递归的方式进行文件传输 并且保持文件/目录的属性  等于 -rtopgDl

-r,--recursive对子目录以递 归模式,即目录下的所有目录都同样传输,注意是小写r

 

-t,--times

保持文件时间信息

-o,--owner

保持文件属主信息

-p,--perms

保持文件权限

-g,--group

保持文件属组信息

-P,--progress

显示同步的过程及传输时的进度等信息

-D,--devices

保持设备文件信息

-l,--links

保留软链接

-e,--rsh=COMMAND

使用的信道协议(remote shell),指定替代rsh的shell程序。例如:ssh --exclude=PATTERN 指定排除不需要传输的文件模式(和tar参数一样)

--bwlimit=RATE

limit socket I/O bandwidth

--delete

让源目录SRC和目标目录数据DST一致

五、以守护进程(socket)方式 传输数据

部署环境

Server  192.168.201.151  node1.thinkmo.cn

Client   192.168.201.152  node2.thinkmo.cn

A-server(服务器端)上以rsync守护进程的方式部署rsync服务,使得所有的rsync节点客户端主机  可以把本地数据通过rsync的方式备份到A上   B、C都是客户端

1)部署rsync的服务器(A端)

a)配置rsync的文件---->需要自己写的! 名称必须是“rsyncd.conf”

#rsync_config_____start

#created by thinkmo 13:40 2017-3-6

##rsyncd.conf start##

# 用户

uid = rsync

# 组

gid = rsync

# 程序安全设置

use chroot = no

# 客户端连接数

max connections = 200

# 超时时间

timeout = 300

# 进程号文件位置

pid file = /var/run/rsyncd.pid

# 进程锁

lock file = /var/run/rsync.lock

# 日志文件位置

log file = /var/log/rsyncd.log

##########################################

[backup]

# 使用目录

path = /backup/

# 有错误时忽略

ignore errors

# 可读可写(true或false)

read only = false

# 阻止远程列表(不让通过远程方式看服务端有啥)

list=false

# 允许IP

hosts allow = 192.168.197.0/24

# 禁止IP

hosts deny = 0.0.0.0/32

# 虚拟用户

auth users = rsync_backup

# 存放用户和密码的文件

secrets file = /etc/rsync.password

##rsync_config______end##

b)创建共享目录 添加 rsync用户

c)启动rsync为socket守护进程

d)把共享文件夹的权限 设置

e)创建rsync的虚拟用户+密码并把rsync.password文件权限设置为600 ---> 如果不是 daemon无效

g) 把rsync写入到启动项

2)部署B-Client

只需要创建密码文件(密码文件可以和server不同   只要里面的密码相同!!!)并且设置文件权限为600

3)测试

Client端拉取命名:

a)输入密码

无需输入密码

Client端推送命名:

RSYNC 同步工具的更多相关文章

  1. rsync同步工具学习笔记

    rsync同步工具 1.rsync介绍 rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.rsync软件适用于unix/linux/windows等多种操作 ...

  2. linux rsync同步工具

    linux rsync同步工具 1.rsync介绍rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.rsync软件适用于unix/linux/windows ...

  3. 日常运维--rsync同步工具

    rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而 ...

  4. rsync同步工具的配置与使用

    一.什么是rsync?rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具. rsync官网 http://rsync.samba.org/ 二.rsync的工 ...

  5. Linux之rsync同步工具介绍+inotify同步

    1.rsync介绍 Rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于unix/linux/windows等多种操作平台. rsync, ...

  6. 二十七、rsync同步工具

    1.什么是rsync? Rsync是一款开源的.快速的,多功能的,可实现全量及增量的本地或者远程数据同步备份的优秀工具.windows和linux都可以. 官网:http:www.samba.org/ ...

  7. Rsync同步工具

    1.Rsync介绍 1.1 什么是Rsync? Rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接 ...

  8. Rsync同步工具安装文档

    (1)下载Rsync源代码进行安装 (2)1'   cd rsync 2'   ./configure   --prefix=/usr/local/rsync 3'   make 4'   make  ...

  9. 利用Rsync同步工具上传、删除目标文件

    Rsync是文件备份工具,当然也可以当做传输工具,管理远程服务器的文件 上传 rsync -avzP --progress --port 9106 /path/.../指定文件 root@192.16 ...

随机推荐

  1. 0007 表单标签(form、select)

    目标: 能写出最常用的注册类表单 能说出input表单常见属性 现实中的表单,类似我们去银行办理信用卡填写的单子. 如下图 作用: 表单目的是为了收集用户信息. 在我们网页中, 我们也需要跟用户进行交 ...

  2. DEVOPS技术实践_02:jenkins自动构建项目

    一.用户名密码错误 打开jenkins发现用户名密码错误,解决 1.1 找到config.xml文件 [root@jenkins-master ~]# ll -a drwxr-xr-x. root r ...

  3. Python3 pip换源

    pip安装源 介绍 """ 1.采用国内源,加速下载模块的速度 2.常用pip源: -- 豆瓣:https://pypi.douban.com/simple -- 阿里: ...

  4. Windows To Go 企业版2019 LTSC 开发环境部署

    Windows To Go 是一项非常实用的功能,与传统方式安装Windows 10相比更具有灵活性,会根据每次接入的硬件型号保留不同版本驱动. 由于博主是一名全栈程序员(截至发稿处于菜鸟级别),对灵 ...

  5. Linux学习笔记(一):什么是挂载?mount的用处在哪?

    关于挂载的作用一直不是很清楚,今天在阅读教材时看见了mount这个命令,发现它的用处很隐晦但非常强大.奈何教材说的不明朗,因此在网上整合了一些优秀的解释,看完之后豁然开朗. 1.提一句Windows下 ...

  6. Win10系统下应用窗口任务栏居中效果

    实现步骤: 在资源管理器中新建文件夹,一定要保证文件夹内无任何文件 任务栏上鼠标右键,移动到工具栏上,选择新建工具栏 选择新建的空文件夹 空文件夹出现在任务栏后,鼠标可以拖动工具栏前的两条竖线(图片上 ...

  7. xshell连接kali linux虚拟机

    这次测试一波三折 刚开始在百度经验看的先修改ssh参数,蓝色的字是百度的,重点都在图片上 1.修改sshd_config文件,命令为: vi /etc/ssh/sshd_config 将#Passwo ...

  8. rsync配置两台服务器之间的文件备份(同步)

    rsync配置两台服务器之间的文件备份(同步) 前情提要 环境: 192.168.1.2 主服务器 centos 7.7 192.168.1.3 备份服务器 centos 7.7 rsync 安装(两 ...

  9. 低副瓣阵列天线综合2 matlab HFSS

    接着继续研究阵列天线设计,得到了电流幅度分布或功率分布之后,就可以进行阵列设计或馈电网络设计了,之前利用HFSS仿真过单列的串馈天线,后面会继续复习熟悉一下,本次我找了一篇硕士论文利用威尔金森功分器来 ...

  10. JVM之GC算法的实现(垃圾回收器)

    上一节:<JVM之GC算法> 知道GC算法的理论基础,我们来看看具体的实现.只有落地的理论,才是真理. 一.JVM垃圾回收器的结构 JVM虚拟机规范对垃圾收集器应该如何实现没有规定,因为没 ...