本地远程数据同步之rsync

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
简介:

一、简介

    rsync一款开源的,快速的,多功能可实现全量及增量的本地或者远程数据同步备份的优秀工具可适用于多个操作系统之上,rsync具有可以使本地和远程两台主机之间的数据快速的同步和备份的用能。


二、工作模式及其特性 

1.rsync特性  

支持拷贝特殊文件如链接文件设备等  

可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能 --exclude 

可以实现增量同步,即只同步发生变化的数据,因此效率很高

实时备份和定时备份 

 

2.rsync命令的工作模式:

1)shell模式,也称为本地模式

2)远程shell模式,此时可以利用ssh协议来保证数据传输的安全  

3)列表模式,其工作方式与ls相似,仅列出源的内容

4)服务器模式,此时,rsync可以工作为守护进程,能够接收客服端的数据传输请求;在使用时,可以在客户端使用rsync命令把文件发送给守护进程,也可以向服务器请求获取文件。


3.rsync常用选项

rsync命令:

rsync  —a  fast,versatile(通用的),remote(and local)file-copying tool  

常用选项:

    -n:测试是否能执行成功 

    -v:显示详细的过程

    -a:归档

    -z:在传输的过程中压缩

    -r:递归复制 

    -P:保持原有属性 

    -p:perm,保持原有权限 

    -e:ssh,表示使用ssh的加密功能 

    -q:quit,静默模式

    -g:保留原文件的属组

    -o:保留原文件的属主

    -l:保留原文件的连接文件 


用法演示:


本地间的数据传输:

删除:rsync -avzP --delete  /tmp  

复制:rsync -avzP /etc/hosts /tmp 

推:rsync -avzP -e 'ssh -p 22' /tmp/ root@10.1.1.10:/tmp   

拉:rsync -avzP -e 'ssh -p 22' root@10.1.1.10:/tmp  /opt 


推:rsync -r -avzP -e ssh /tmp/etc  root@192.168.226.137:/tmp

拉:rsync -avzP -r -e ssh root@192.168.226.137:/tmp/etc  /tmp/


# rsync -r /mydata/data /backups/ : 会把目录data直接同步backups目录中

# rsync -r /mydata/data/ /backups/: 会把目录data/中的内容的同步至/backups目录中


注意:rsnc命令在使用中,如果源参数的末尾没有斜线,就复制指定目录里面的内容,包括目录本身,目标参数末尾的参数没有作用。rsync命令使用中,如果源参数的末尾有斜线,就会复制指定目录的内容,而不复制目录本身



三、配置rsync服务实现远程主机之间数据传输 

1.服务端配置

1)安装软件:rsync、xinetd,超级守护进程配置文件在/etc/xinetd文件中 

yum -y install rsync xinetd  


2)创建rsync配置文件 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#rsync server start#
uid = nobody
gid = nobody
use chroot = no 
max connections = 10 
strict modes =  yes 
pid  file  /var/run/rsyncd .pid 
log  file  /var/log/rsyncd .log 
#directory to be backup or synced  
[synced_name]
path =  /path/to/some_dir 
ignore errors =  yes 
read  only = no 
write only = no 
hosts allow = white_list_ip /net
hosts deny = *
说明:
1、二者都不出现时,默认为允许访问;
2、只出现hosts allow: 定义白名单;但没有被匹配到的主机由默认规则处理,即为允许;
3、只出现hosts deny: 定义黑名单;出现在名单中的都被拒绝;
4、二者同时出现:先检查hosts allow,如果匹配就allow,否则,检查hosts deny,如果匹配则拒绝;如二者均无匹配,则由默认规则处理,即为允许;
list =  false
uid = root
gid = root
auth  users  = username
secrets  file  /etc/rsyncd . passwd


3)配置密码文件/etc/rsyncd.password  

格式:username:password     文件权限600 


4)配置服务启动

chkconfig rsync on 

service xinetd start   


5)检查监听的端口:873   

ss -tnl |grep 873 

2.客服端配置

1)配置密码文件/etc/rsyncd.password  

格式:password     文件权限600 


    

3.在客户端进行测试,如果需要周期性操作,则需要将命令写入crontab中      

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

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

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

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

    

图示:


配置:

wKiom1fh_tmCdkRFAABLd2aKRzQ330.png


测试:

wKioL1fh_3Wz4g-FAAA6P2dV1nU651.png



本文转自chengong1013 51CTO博客,原文链接:http://blog.51cto.com/purify/1854879,如需转载请自行联系原作者

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
7月前
|
监控 算法 Unix
rsync远程同步
rsync远程同步
97 0
|
监控 算法 Linux
使用 Rsync 实现远程同步,以及实时同步
Rsync 全称为:Remote Sync(远程同步),是一款开源的快速备份工具,可以在不同主机间镜像同步整个目录树,支持增量备份,保持链接和权限,采用优化的同步算法,传输前执行压缩,适用于异地备份,镜像服务器等应用(Linux 系统默认安装)
1076 0
使用 Rsync 实现远程同步,以及实时同步
|
监控 Linux 网络安全
|
11月前
|
安全 Unix Linux
【Linux网络服务】Rsync数据同步
【Linux网络服务】Rsync数据同步
|
消息中间件 缓存 监控
rsync远程同步(下)
一、rsync介绍 1.1 rsync简介 rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
127 0
|
监控 数据安全/隐私保护 Linux
rsync+Inotifywait实现文件实时同步
rsync+Inotifywait实现实时同步 背景: 某客户想实现实现异地灾备,想达到的是A机房出现断电的时候。数据能实时的将数据同步到B上,并且域名切换到B之后能提供业务 。使用rsync+inotify做web数据和ftp(ftp主要是用户上传的图片文件)的数据实时同步. 一:软件介绍: rsyncrsync是一个开源的快速备份工具,可以再不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,再传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
2147 0
|
应用服务中间件 nginx Perl
|
数据安全/隐私保护 算法 Shell
|
Shell 网络安全
|
算法 数据安全/隐私保护 Linux