rsync

rsync连接远程主机进行同步或备份时有两种途径:

使用远程shell程序(如ssh或rsh)进行连接,或使用TCP直接连接rsync daemon。

Rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时Rsync server会打开一个873端口,等待客户端去连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量份。

本地拷贝:

rsync [选项] SRC… DEST,在本地进行复制操作

shell模式:

rsync [选项] [[email protected]]Host:SRC… [DEST],拉动作,从远程主机拉文件到本地

rsync [选项] SRC… [[email protected]]Host:DEST,推动作,把本地文件推送到远程主机

daemon模式:

rsync [选项] [[email protected]]Host::SRC… [DEST],拉动作

rsync [选项] rsync://[[email protected]]Host [:port]/SRC… [DEST],仍然是拉动作

rsync [选项] SRC... [[email protected]]Host::DEST,推动作

rsync [选项] SRC...rsync://[[email protected]]Host [:port]/DEST,仍然是推动作

目标:多服务器文件同步

环境:2台CentOS5.6

Web端:192.168.20.20

Backup端:192.168.20.21

需要备份目录为:192.168.20.20:/usr/local/web1 /usr/local/web2

第一步:服务器端的配置

#rpm –qa |grep rsync && rpm –e rsync-** --dodeps
如果没有的话,则自行下载安装 (yum –y install rsync)
 #cd /usr/local/
 # wget http://www.samba.org/ftp/rsync/src-previews/rsync-3.0.6pre1.tar.gz
 #tar –zxvf rsync-3.0.6pre1.tar.gz
 #cd rsync-3.0.6pre1
 #./configure –prefix=/usr/local/rsync 
 # make && make install
 # vi /etc/rsyncd.conf
 
[web1]
path=/usr/local/web1
comment = backup web1
ignore errors
read only = yes
#list = no
auth users = web1
 
[web2]
path=/usr/local/web2
comment = backup web2
ignore errors
read only = yes
#list = no
auth users = web2

uid = nobody           //指定文件传输过程中的用户身份

gid = nobody           //指定文件传输过程中的组身份

log file = /var/log/rsyncd.log        //指定使用独立的日志文件的位置

pid file = /var/run/rsyncd.pid        //保存pid到指定文件,以便于使用脚本终止进程

read only = yes        //该目录设置为只读,即只允许客户端下行同步,不允许上传。若需要进行从                          备份机还原数据,改为no

rsyncd默认在873端口监听服务,可在客户端使用telnet连接测

# mkdir -p /usr/local/pid
# mkdir -p /usr/local/pwd
# vi /usr/local/rsync/pwd/rsyncd.pwd
web1:[email protected]
web2:[email protected]

格式为:用户名:密码

设置密码文件仅仅root用户能访问

#chmod 600 /usr/local/rsync/pwd/rsyncd.pwd
# cp /usr/local/rsync/bin/rsync  /usr/bin/

在服务器端启动rsync服务

# rsync –daemon (注意重启kill后要把.pid .lock删掉)

第二步:备份端的配置

安装rsync软件,同上

设置密码文件只需填写对应密码:

# touch /usr/local/rsync/web1
# touch /usr/local/rsync/web2
# vi /usr/local/rsync/web1
 [email protected]
# vi /usr/local/rsync/web2
 [email protected]

同时设置为只有root有权限

# chmod 600 /usr/local/rsync/wbe1

创建备份目录

# mkdir -p /usr/local/web1
# mkdir -p /usr/local/web2
# rsync –daemon

把服务器端文件web1备份到本机(备份机):

# /usr/bin/rsync -vzrtopg --progress --delete --exclude "logs/" --exclude "conf/ssl.*/" --password-file=/usr/local/rsync/web1 [email protected]::web1 /usr/local/web1

# Web2 也是一样的如上手动进行同步

--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致, 删除本地目录中多余的文件

-- exclude "logs/" 表示不对/web1/logs目录下的文件进行备份。

--exclude "conf/ssl.*/"表示不对/web1/conf/ssl.*/目录下的文件进行备份。

如果需要可以放到crontab 计划任务中间隔性的进行同步备份!

将以上命令写入计划任务,每1分钟执行,即可实现实时同步的效果。

注:上面这个命令行中-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。-- progress是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。

附,rsync使用时的常见问题:

错误1: rsync: read error: Connection reset by peer (104)

rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receiver=3.0.2]

解决:很大可能是服务器端没有开启 rsync 服务。开启服务。 或者开启了防火墙指定的端口无法访问。

错误2:@ERROR: chdir failed

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

解决:服务器端同步目录没有权限,cwrsync默认用户是Svcwrsync。为同步目录添加用户Svcwrsync权限。

错误3:@ERROR: failed to open lock file

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

解决:服务器端配置文件 rsyncd.conf中添加 lock file = rsyncd.lock 即可解决。

错误4:@ERROR: invalid uid nobody

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

解决:在rsyncd.conf文件中添加下面两行即可解决问题

UID = 0

GID = 0

错误5:@ERROR: auth failed on module test2

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

解决:服务端没有指定正确的secrets file,请在 [test2]配置段添加如下配置行:

auth users = coldstar #同步使用的帐号

secrets file = rsyncd.secrets #密码文件

错误6:password file must not be other-accessible

解决:客户端的pass文件要求权限为600, chmod 600 /etc/rsync.pass 即可。

时间: 2024-10-14 15:14:11

rsync的相关文章

rsync+inotify-tools实时同步

rsync概述: rsync是类unix系统下的数据镜像备份工具--remote sync.一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH.rsync主机同步 Rsync(remote sync)是UNIX及类UNIX平台下一款神奇的数据镜像备份软件,它不像FTP或其他文件传输服务那样需要进行全备份,Rsync可以根据数据的变化进行差异备份,从而减少数据流量,提高工作效率.你可以使用它进行本地数据或远程数据的复制,Rsync可以使用SSH安全隧道进行加密数

rsync存储服务器-全网备份

一.rsync功能介绍: 复制 (同步)的工具 全量及增量 本地和远程 Rsync英文全称为Remotesynchronization 本地复制cp(全量备份),rsunc也有此功能(增量) 远程复制scp(全量备份),rsync也有此功能(增量) 删除工具rm,rsync也有此功能 二. Rsync的特性 支持拷贝特殊文件如链接文件,设备等 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能 可以做到保持原文件或目录的权限.时间.软硬链接.属主.组等所有属性均不改变  - p

Rsync无差异同步原理和实现

4.Rsync无差异同步原理和实现.md 无差异同步   在生产环境中我们可能会遇到这样的状况,我们的客户端在服务端去拉取数据的时候,首先一点,对于拉取我们的服务端有的那么我们客户端肯定有.但是我们的客户端有的服务端就不一定是有的了.反之如果是推送的话,那么我们客户端有的我们的服务端那肯定是有的,但是我们的服务端有的我们的客户端不一定有.所以对于这种当服务端删除一条数据之后为了保障我们的客户端也能在下一次同步的时候进行删除的这种情况我们就需要采取无差异同步,保障数据的一致性. 实现方法 --de

rsync+inotify实时同步

一.Rsync简介: rsync是一个远程数据同步工具,可通过lan/wan快速同步多台主机间的文件.它使用所谓的"rsync演算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.所以通常可以作为备份工具来使用. 运行rsync server的机器也叫backup server,一个rsync server可同时备份多个client的数据:也可以多个rsync server备份一个client的数据.rsync可以搭配

【转载】CentOS 6.3下rsync服务器的安装与配置

一.rsync 简介 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录. Rsync 是用于取代rcp的一个工具,Rsync使用所谓的 “Rsync 算法” 来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.您可以参考 How Rsync Works A Practical Overview 进一步了解 rsync

使用 rsync 出错:rsync: chgrp "XXXX" failed: Operation not permitted

You are probably running rsync like this: rsync -a dir/ remote:/dir/ The -a option according to the documentation is equivalent to: -rlptgoD       -a, --archive    archive mode; equals -rlptgoD (no -H,-A,-X) You probably want to remove the -o and -g 

RSync实现双机文件同步

双机同步任务操作步骤                      注:红色为注释说明的内容,绿色为示例内容,请以项目实际情况修改操作 1. 安装或更新相关软件包 #yum install rsync* xinetd* –y 2. 配置rsync服务端(提供文件同步的服务器),制定提供同步的应用条目信息 A. 配置文件实例如下 #vim /etc/rsyncd.conf                          -------------编辑rsync配置文件 uid = root     

rsync远程数据备份配置之再次总结

一.实验环境 主机名  网卡ip  默认网关 用途 nfs-server 10.0.0.11 10.0.0.254 rsync服务器端 web-client01 10.0.0.12 10.0.0.254 rsync客服端 web-client02 10.0.0.13 10.0.0.254 rsync客服端 二.实验步骤 1.什么是rsync?rsync是一款开源的,快速的,多功能的可实现全量及增量的数据备份同步的优秀工具,适用于多种操作系统之上.2.rsync特性1)支持拷贝链接文件特殊文件2)

以rsync的daemon工作模式传输数据

一.简介 rsync主要有三种工作方式: 1.单个主机本地之间的数据传输(类似于cp命令的功能) 2.借助rcp,ssh等通道来传输数据(类似于scp命令的功能) 3.以守护进程(socket)的方式传输数据(rsync自身的重要功能) 这里描述的是以第三种模式处理. 此例子准备了两台机器,分别为服务端10.0.0.41-backup,客户端10.0.0.100-oldboy. 二.在服务端启动及检查rsync服务 [[email protected]]# rsync --deamon #启动服

inotify+rsync实现实时同步部署

1.1.架构规划 1.1.1架构规划准备 服务器系统 角色 IP Centos6.7 x86_64 NFS服务器端(NFS-server-inotify-tools) 192.168.1.14 Centos6.7 x86_64 rsync服务器端(rsync热备服务器) 192.168.1.17 1.1.2架构图 2.1 部署前检查 2.1.1 检查rsync热备服务器daemon是否起来 1 [[email protected] data]# lsof -i:873 2 COMMAND PID