rsync数据镜像备份工具

rsync简介:

rsync(remote synchronize)是Liunx/Unix下的一个远程数据同步工具。它可通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync算法(差分编码,也就是差异传输)以减少数据的传输。因此同步两端的数据很快,而且对同步的数据可以支持递归传输(可以使用tree查看发现两边目录tree一致),还可以保持数据原本的属性,也支持选择性压缩。(可本地也可异地传输)

rsync工作原理:

1.client构造filelist发送到server(filellist是包含了所有文件信息对:name->id,id用来代表唯一的文件,例MD5)

2.Server处理filelsit,将filelist中存在而本地不存在的对应数据构成newfilelist,将本地存在而filelist中不存在的数据删除。

3.Server发送构造好的newfilelist至Client

4.Client接受newfilelist,并发送newfilelist中对应的数据至Server.

rsync同步数据模拟

京东云主机为Server IP :  AAA.AAA.AAA.AAA

阿里云主机为Client IP :  BBB.BBB.BBB.BBB

首先安装rsync,两端都要安装,笔者这都是已经默认安装好了的:

[[email protected] ~]#  rpm -qa rsync
rsync-3.0.9-18.el7.x86_64

如果没有安装可以去官网下载安装

[[email protected] ~]#  cd /usr/local/src
[[email protected] ~]#  wget https://download.samba.org/pub/rsync/src/rsync-3.0.9.tar.gz
tar
[[email protected] src]#  tar -zvxf rsync-3.0.9.tar.gz 
[[email protected] src]# cd rsync-3.0.9
[[email protected] rsync-3.0.9]# ./configure
[[email protected] ]#  make $$ make install

搭建远程服务之前先来小试一下rsync命令:

1 rsync [OPTION]... SRC [SRC]... DEST

2 rsync [OPTION]... SRC [SRC]... [[email protected]]HOST:DEST

3 rsync [OPTION]... SRC [SRC]... [[email protected]]HOST::DEST

4 rsync [OPTION]... SRC [SRC]... rsync://[[email protected]]HOST[:PORT]/DEST

5 rsync [OPTION]... [[email protected]]HOST:SRC [DEST]

6 rsync [OPTION]... [[email protected]]HOST::SRC [DEST]

7 rsync [OPTION]... rsync://[[email protected]]HOST[:PORT]/SRC [DEST]

可以看到一共有6种用法使用较多的是2,6

第一种:rsync [OPTION]... SRC [SRC]... DEST
是将指定本地数据传输到指定本地路径,类似cp
[[email protected] rsynctest]# ll
total 4
drwxr-xr-x 2 root root 4096 Sep 24 15:34 test
-rw-r--r-- 1 root root    0 Sep 24 15:34 xad.test
[[email protected] rsynctest]# rsync -av xad.test test/
sending incremental file list
xad.test
sent 72 bytes  received 31 bytes  206.00 bytes/sec
total size is 0  speedup is 0.00
[[email protected] rsynctest]# ll test/xad.test 
-rw-r--r-- 1 root root 0 Sep 24 15:34 test/xad.test
第二种: rsync [OPTION]... SRC [SRC]... [[email protected]]HOST:DEST
将本地数据传输到远端路径,且是使用远端的用户传输,需要密码。
 [[email protected] ~]# rsync -av rsynctest/ [email protected] AAA.AAA.AAA.AAA:testrsync
The authenticity of host ‘ AAA.AAA.AAA.AAA ( AAA.AAA.AAA.AAA)‘ can‘t be established.
ECDSA key fingerprint is 6f:8c:32:66:d8:e4:91:78:e8:3a:4a:39:56:6f:1f:ec.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘AAA.AAA.AAA.AAA‘ (ECDSA) to the list of known hosts.
[email protected]‘s password: 
sending incremental file list
./
xad.test
test/
test/xad.test
sent 179 bytes  received 57 bytes  22.48 bytes/sec
total size is 0  speedup is 0.00
传输完成可以去远端检验
[[email protected] testrsync]# ll
total 0
drwxr-xr-x 2 root root 22 Sep 24 15:35 test
-rw-r--r-- 1 root root  0 Sep 24 15:34 xad.test
第六种:rsync [OPTION]... [[email protected]]HOST::SRC [DEST]##注意是"::"
以远端的数据为基准同步到本地,属于服务器模式,使rsync在后台启用一个守护进程,使之永久运行,用于接受文件传输请求。
京东云主机为ServerIP :  AAA.AAA.AAA.AAA
阿里云主机为Client IP :  BBB.BBB.BBB.BBB
将server的数据同步到client

首先先找到配置文件/etc/rsync.conf
[[email protected] ~]# cat /etc/rsync.conf
 uid = nobody##使用匿名用户执行守护进程
 gid = nobody
 use chroot = no
 max connections = 4##最大并发连接数
 strict modes = yes##检验口令文件的权限,若为yes,则密码文件需要root权限
 pid file = /var/run/rsyncd.pid
 [XAD]##定义一个模块名称
path = /root/testrsync  ##需要传输的数据的路径
comment = xadsrc file
read only = no
write only = no
hosts allow = *##允许连接的地址
#hosts deny = IP/NETMASK
uid = root
gid = root
auth users = backup
 ##使用此模块的用户,多个用户用空格隔开,此用户和linux用户没任何联系
secrets file = /etc/server.pass
 ##密码文件,格式是“user:pass”单独一行,需要自己手动创建,文件名是什么随意。

创建/etc/server.pass
[[email protected] ~]#  cat /etc/server.pass
backup:xad123
[[email protected] ~]# chmod 600 /etc/server.pass

创建守护进程
[[email protected] ~]#  /usr/bin/rsync    --daemon
[[email protected] ~]# ps -ef | grep rsync
root     15862     1  0 Sep23 ?        00:00:00 /usr/bin/rsync --daemon
现在去cilent端配置执行rsync,在这只需添加密码文件和执行传输操作就可以,什么都不用设置。
创建/etc/client.pass
[[email protected] ~]#  cat /etc/client.pass
xad123
[[email protected] ~]# chmod 600 /etc/client.pass
[[email protected] ~]#  /usr/bin/rsync  -vzrtopg --delete --progress --exclude "*access*" --exclude "debug*" [email protected]::XAD  /root/rsynctest --password-file=/etc/client.pass
##命令中的参数
v是详细输出
z是压缩后传输
r是递归传输,可以是用tree查看对比
t是保数据的原始时间信息
o是保持数据的所属主
p是保持数据的文件权限
g是保持数据的属组
exclude排除不需要传输的文件类型
delete是以服务器的数据为基准去镜像数据的同步
progress显示数据镜像的过程
[email protected]::XAD 红色标注的就是在服务器端设置的对应信息
/root/rsynctest 数据同步的保存路径
 --password-file=/etc/client.pass数据使用的密码文件!指的是backup用户!
##
测试
为了测试先删除/root/rsynctest中的文件后在执行
[[email protected] rsynctest]#  /usr/bin/rsync  -vzrtopg --delete --progress --exclude "*access*" --exclude "debug*" [email protected] AAA.AAA.AAA.AAA::XAD /root/rsynctest --password-file=/etc/client.pass 
receiving incremental file list
./
xad.test
           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=2/4)
test/
test/xad.test
           0 100%    0.00kB/s    0:00:00 (xfer#2, to-check=0/4)
sent 126 bytes  received 232 bytes  716.00 bytes/sec
total size is 0  speedup is 0.00
[[email protected] rsynctest]# ll
total 4
drwxr-xr-x 2 root root 4096 Sep 24 15:35 test
-rw-r--r-- 1 root root    0 Sep 24 15:34 xad.test
设置定时备份
[[email protected] ~]# crontab -e 
301***/usr/bin/rsync  -vzrtopg --delete --progress --exclude "*access*" --exclude "debug*" [email protected] AAA.AAA.AAA.AAA::XAD /root/rsynctest --password-file=/etc/client.pass
到此为止server端的数据就可以在凌晨1:30分开始同步到client了。
时间: 2024-11-06 03:37:19

rsync数据镜像备份工具的相关文章

Rsync数据同步工具应用指南

1.Rsync数据同步工具应用指南 简介Rsync的特性:Rsync的工作方式:Rsync命令同步选项参数:本地主机模式示例远程RPC模式示例 简介     Rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.可使本地和远程两台或多台主机之间的数据快速复制同步镜像.远程备份的功能.这个功能类似ssh自带的scp命令,但又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝.当然,Rsync还可以在本地主机的不同分区或目录之间全量及增量的

Linux下rsync 数据镜像备份 client / server 模式

Linux下rsync 数据镜像备份 rsync特性: 可以镜像保存整个目录树和文件系统可以增量同步数据,文件传输效率高,因而同步时间很短.可以保持原有文件的权限.时间等属性.加密传输数据,保证了数据的安全性 两种模式: client / serverclient / client 安装rsync yum install rsync 查看rsync版本 rpm -qa rsyncrsync-3.1.2-4.el7.x86_64 查看rsync安装位置 rpm -ql rsync 在服务器端:编辑

第十六课----Rsync数据同步工具

1.1.1 什么是Rsync?Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于unix/linux/windows等多种操作系统平台.1.1.2 Rsync简介? Rsync英文全称Remote synchronization,从软件的名称就可以看出来,Rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像,远程备份的功能,这个功能类似ssh带的scp命令,但又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以

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

rsync即是能备份系统也是数据同步的工具. 在Jenkins上可以使用rsync结合SSH的免密登录做数据同步和分发.这样一来可以达到部署全命令化,不需要依赖任何插件去实现. 命令参考:http://man.linuxde.net/rsync 说明: rsync命令 是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快. rsy

rsync数据同步工具指南

一.     rsync简介 remote synchronize,rsync是一款开源的.快速的.多功能的.可实现全量或增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于unix/linux/windows等多种操作系统平.官方网站:http://www.samba.org/ftp/rsync/rsync.html 一个rsync相当于scp,cp,rm,而且还优于他们每一个命令 二.     特性 支持拷贝特殊文件如链接文件,设备等. 可以有排除指定文件或目录同步的功能,相当于打包

rsync数据同步工具

rsync -av  --include="*.fastq.gz" --include="*.fq.gz"  --include="*/" --exclude=* /public/data   ./ rsync用于Linux系统之间的文件同步,效果还是非常好的!故做个记录,以备参考! 一.rsync简介用于替代rcp的一个工具,rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时rsync server会

Rsync 数据同步工具

一,Rsync的工作方式 有三大类分别是: (1)本地间类似CP命令的复制方式,本地间的数据传输服务. (2)网络间两台不同ip服务器间数据传输,服务器与服务器之间进行数据同步. (3)多组服务器之间,以socket进程的方式,启动Rsync进程进行监听. 1,本地间的数据传输服务 同一台服务器内源目录传输到backap备份目录.相当于CP复制 2,服务器与服务器之间进行数据同步. 把服务器A的数据推送到服务器B 通过ssh加密隧道(远程连接和shell都是用这个ssh加密通道) 3,最重要的第

Linux学习总结(二十八) 数据同步工具 rsync

rsync是linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. rsync格式 rsync [OPTION] - SRC DEST rsync [OPTION] - SRC [[email protected]]host:DEST rsync [OPTION] - [[email protected]]host:SRC DEST 1 rsync常用选项 -a 包含-rtplgoD-r 同步目录时要加上,

Linux的rsync远程数据同步工具

Rsync(remote synchronize) 是一个远程数据同步工具,可以使用"Rsync算法"同步本地和远程主机之间的文件. rsync的好处是只同步两个文件不同的部分,相同的部分不在传递.类似于增量备份, 这使的在服务器传递备份文件或者同步文件,比起scp工具要省好多时间. OS:ubuntu server 10.04 server:192.168.64.128 client:192.168.64.145 server 1.ubuntu  server 10.04默认已安装r