rsync数据同步工具

rsync -av  --include="*.fastq.gz" --include="*.fq.gz"  --include="*/" --exclude=* /public/data   ./

rsync用于Linux系统之间的文件同步,效果还是非常好的!故做个记录,以备参考!

一、rsync简介
用于替代rcp的一个工具,rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时rsync server会开一个873端口,等待客户端去连接,连接时,rsync server会检查口令是否相符,若通过口令查核,则可以通过进行文件传输,第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份;

二、rsync常用参数
-v,--verbose  详细模式输出;
-a,--archive  归档模式,表示以递归的方式传输文件,并保持所有文件属性不变,相当于使用了组合参数-rlptgoD;
-r, --recursive 对子目录以递归模式处理;
-l, --links 保留软链结;
-p, --perms 保持文件权限;
-t, --times 保持文件时间信息;
-g, --group 保持文件属组信息;
-o, --owner 保持文件属主信息;
-D, --devices 保持设备文件信息;
-H, --hard-links 保留硬链结;
-S, --sparse 对稀疏文件进行特殊处理以节省DST的 空间;
--delete 删除那些DST中SRC没有的文件;
-z, --compress 对备份的文件在传输时进行压缩处理;

三、rsync的六种不同的工作模式;
1)拷贝本地文件;
当SRC和DES路径信息中不包含冒号":"分隔符时,就启用这种工作模式:
[[email protected] /]# rsync -avSH /home/coremail/ /cmbak/

2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器,当DST路径地址包括冒号":"分隔符时启动该模式;
[[email protected] /]# rsync -avSH /home/coremail/ 192.168.11.12:/home/coremail/

3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器,当SRC地址路径包括冒号":"分隔符时启动该模式;
[[email protected] /]# rsync -avSH 192.168.11.11:/home/coremail/ /home/coremail/

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

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

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

四、rsync服务端的配置;
环境:192.168.11.11为生产机;192.168.11.12为备份机;
那么需要192.168.11.11需要作为rsync的client;
192.168.11.12作为rsync的service端;

1、192.168.11.12_service端的配置;
1)[[email protected] data]# touch /etc/rsyncd.conf  //此文件为rsync的主配置问题,默认不存在需要手动创建;
2)定义同步的配置;
[[email protected] data]# cat /etc/rsyncd.conf 
[data]
path = /data/
auth users = coremail
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no

[MySQL]
Path = /home/coremail/var/mysql            
auth users = coremail
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no

[cmxt]
Path = /home/coremail/          
auth users = coremail
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no

3)定义密码文件/etc/rsyncd.secrets
[[email protected] data]# cat  /etc/rsyncd.secrets 
coremail:coremail

4)启动rsync启动服务
[[email protected] data]# cat /etc/xinetd.d/rsync 
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#       allows crc checksumming etc.
service rsync
{
        disable = yes           //需要修改为no;
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

[[email protected] data]# chkconfig --level 2345 rsync on
[[email protected] data]# chkconfig rsync on
[[email protected] data]# chkconfig --level 2345 xinetd on
[[email protected] data]# service xinetd restart
Stopping xinetd: [  OK  ]
Starting xinetd: [  OK  ]

2、192.168.11.11_client端的配置;
[[email protected] /]# cat /etc/rsyncd.secrets 
coremail

[[email protected] /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/[email protected]::data
[[email protected] /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/[email protected]::mysql
[[email protected] /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/[email protected]::cmxt

五、定义定时自行rsync同步,指定同步的日志所在的路径/var/log/rsync/下;
[[email protected] log]# cat /root/rsync.sh 
DATE=`date +%Y%m%d%H%M`
rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ [email protected]::data>/var/log/rsync.date.$DATE
rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ [email protected]::mysql>/var/log/rsync.mysql.$DATE
rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ [email protected]::cmxt>/var/log/rsync.cmxt.$DATE

chmod u+x /root/rsync.sh

[[email protected] log]# crontab -l
0 3 * * * /root/rsync.sh

执行时候的日子记录文件:
[[email protected] log]# ls |grep ‘rsync‘
rsync.cmxt.201110180915
rsync.date.201110180915
rsync.mysql.201110180915

可能會遇到的疑難問題:

1. Q: 出現以下這個訊息, 是怎麼一回事?

@ERROR: auth failed on module xxxxx
rsync: connection unexpectedly closed (90 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(150)

A: 這是因為密碼設錯了, 無法登入成功, 請再檢查一下 rsyncd.secrets 中的密碼設定, 二端是否一致?

2. Q: 出現以下這個訊息, 是怎麼一回事?

password file must not be other-accessible

continuing without password file

Password:

A: 這表示 rsyncd.secrets 的檔案權限屬性不對, 應設為 600

請下 chmod 600 rsyncd.secrets

3. Q: 出現以下這個訊息, 是怎麼一回事?

@ERROR: chroot failed
rsync: connection unexpectedly closed (75 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(150)

A:這通常是您的 rsyncd.conf 中
的 path 路徑所設的那個目錄並不存在所致.
請先用 mkdir 開設好備份目錄.

问题一:

@ERROR: chroot failed

rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:

服务器端的目录不存在或无权限。创建目录并修正权限可解决问题。

问题二:

@ERROR: auth failed on module tee

rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:

服务器端该模块(tee)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。提供正确的用户名密码解决此问题。

问题三:

@ERROR: Unknown module ‘tee_nonexists’

rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:

服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题。

问题四:

password file must not be other-accessible

continuing without password file

Password:

原因:

这是因为rsyncd.pwd rsyncd.secrets的权限不对,应该设置为600。如:chmod 600 rsyncd.pwd

问题五:

rsync: failed to connect to 218.107.243.2: No route to host (113)

rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]

原因:

对方没开机、防火墙阻挡、通过的网络上有防火墙阻挡,都有可能。关闭防火墙,其实就是把tcp udp的873端口打开。

问题六:

rsync error: error starting client-server protocol (code 5) at main.c(1524) [Receiver=3.0.7]

原因:

/etc/rsyncd.conf配置文件内容有错误。请正确核对配置文件。

问题七:

rsync: chown "" failed: Invalid argument (22)

原因:

权限无法复制。去掉同步权限的参数即可。(这种情况多见于linux向Windows的时候)

问题八:

@ERROR: daemon security issue -- contact admin
rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]

原因:

同步的目录里面有软连接文件,需要服务器端的/etc/rsyncd.conf打开use chroot = yes。掠过软连接文件。

时间: 2024-08-28 04:41:02

rsync数据同步工具的相关文章

Rsync数据同步工具应用指南

1.Rsync数据同步工具应用指南 简介Rsync的特性:Rsync的工作方式:Rsync命令同步选项参数:本地主机模式示例远程RPC模式示例 简介     Rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.可使本地和远程两台或多台主机之间的数据快速复制同步镜像.远程备份的功能.这个功能类似ssh自带的scp命令,但又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝.当然,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的工作方式 有三大类分别是: (1)本地间类似CP命令的复制方式,本地间的数据传输服务. (2)网络间两台不同ip服务器间数据传输,服务器与服务器之间进行数据同步. (3)多组服务器之间,以socket进程的方式,启动Rsync进程进行监听. 1,本地间的数据传输服务 同一台服务器内源目录传输到backap备份目录.相当于CP复制 2,服务器与服务器之间进行数据同步. 把服务器A的数据推送到服务器B 通过ssh加密隧道(远程连接和shell都是用这个ssh加密通道) 3,最重要的第

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

rsync远程数据同步工具应用

一直觉得rsync这个命令复杂不好用,一直在排斥这个工具,抱怨rsync功能简单又复杂难用,这些都不是rsync的问题,只是我不愿意去man这个工具的的帮助文档,其实rsync这个工具也没有想象中那么复杂难用:rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的"rsync算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快. rsync是一个功能非常强大的工具,其命令

rsync高级同步工具基础及实战

drdb 基于文件系统同步 rsync 开源的多功能的.可实现全量.增量的本地或远程的数据同步工具.默认不加密,还可以删除,具备scp.cp.rm. inotify实时增量备份,企业一般是rsync+inotify或rsync+sersync.虽然rsync可以增量备份,但企业一般不会采用这个功能,原因在于增量备份时会有比对,特别有业务的情况下,不能这样做会占用大量资源. rsync 默认参数-avz   -r --delete  /目录后要带斜线,rsync区别与带不带/.一般都带代表只包括目

rsync 数据同步

rsync 是个优秀的数据同步工具,通过先进的校验算法,能够比较文件区别,实现增量传输,从而减少数据传输量. 环境:centos 6.3 x64 服务端:192.168.1.2 客户端:192.168.1.3 安装服务端 yum install rsync 创建配置文件/etc/rsyncd.conf uid = nobody gid = nobody use chroot = no max connections = 512 log file = /var/log/rsyncd.log pid