Rsync简介

 rsync 是一个 Unix 系统下的文件同步和传输工具。

它具备以下特性:

1. 能更新整个目录和树和文件系统

2. 有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间

3. 对于安装来说,无任何特殊权限要求

4. 对于多个文件来说,内部流水线减少文件等待的延时

5. 能用 rsh、ssh 或直接端口做为传输入端口

6. 支持匿名 rsync 同步文件,是理想的镜像工具;

 

Rsync服务器是指以deamon方式运行rsync服务的服务器,需要打开rsync deamon和启动xinetd服务。默认端口873。

 

Rsync客户端是发起rsync连接的服务器,安装rsync即可。

Rsync工作场景

Rsync客户端发起连接后,Rsync服务器会检查Rsync客户端提交Rsync服务器内建的户名和密码是否正确,如果通过认证检测,则开始文件传输,传输的过程是按要求先比对文件的大小、属性、权限、MD5值等信息,如果两端文件信息不一致,则按要求同步文件的区别块。

以下以备份rsync服务器的/usr/local/tomcat6/web 目录为例进行部署。

Rsync服务器架设简单,多数发行版本unix或者linux操作系统甚至默认都安装了rsync

全局配置文件 /etc/rsyncd.conf  有时候安装后没有此文件不必惊慌,自己创建一个。默认安装的也可能不存在该文件。

 

 

Rsync服务器搭建步骤:

1,安装rsync软件(略)

2,开启rsync deamon的xinetd服务

#chkconfig xinetd on     打开了xinetd的启动项(输入命令,如果系统不报错即可)

#chkconfig rsync on      打开rsync的启动项(输入命令,如果系统不报错即可)

#vi /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 = no
 socket_type = stream
 wait = no
 user = root
 server = /usr/bin/rsync
 server_args = daemon
 log_on_failure += USERID
 }

3,配置rsync

#vi /etc/rsyncd.conf      设置rsync配置文件(新建文件)

添加以下内容

uid=nobody
 gid=nobody
 max connetctions=4
 use chroot=no
 log file=/var/log/rsyncd.log
 transfer logging=yes
 log format=%t %a %m %f %b
 pid file=/var/run/rsyncd.pid
 lock file=/var/run/rsyncd.lock
 #auth users=root
 secrets file=/etc/rsyncd.pwd
 [web]
 path=/usr/local/tomcat6/web
 comment=backup web
 ignore errors
 read only=yes
 list=no
 auth users=cms
 secrets file=/etc/rsyncd.pwd

配置说明:

uid=nobody

gid=nobody

uid 和 gid是系统内建用户,必须存在于系统/etc/passwd文件中。这里设置了最小权限

max connetctions=4

max connections是客户端同时连接数,为了限制多线程同步的。

use chroot=no

不使用chroot。如果使用chroot,同步时候需要root权限,另外对符号链接文件, 将会排除在外。所以我们不使用chroot。

secrets file=/etc/rsyncd.pwd定义密码文件rsyncd.pwd

 

[web]

设置备份任务名称为web,下面的都是web备份任务参数设置,一直到另一个[]截止。我们可以创建多个备份任务。

path=/usr/local/tomcat6/web定义需要备份目录

comment=backup web定义显示说明,备份web目录

ignore errors 忽略同步中出现的错误

read only=yes定义访问方式为只读

list=no  定义了Rsync客户端是不可以列出目录结构

auth users=cms 定义了客户端备份web项目的用户,这个用户是rsync内建用户与rsync服务器和客户端系统用户无关

 

4,设置rsync内建用户和密码

#echo "cms:cmscms" >> /etc/rsyncd.pwd

这里我们设置rsync内建用户cms,密码cmscms

修改密码文件执行权限

#chmod 600 /etc/rsyncd.pwd

5,重启rsync服务

# service xinetd restart  启动服务

 

Rsync客户端搭建步骤

1,安装rsync软件(略)

2,客户端生成生成验证证文件

#echo "cmscms" >> /etc/rsyncd.pwd     cmscms是密码

#chmod 600 /etc/rsyncd.pwd

3,测试

使用如下命令测试Rsync客户端是否可以同步Rsync服务端

#/usr/bin/rsync -vzrtopg --password-file=/etc/rsyncd.pwd --progress --delete-after cms@100.1.1.147::web  /usr/local/tomcat6/web

/usr/bin/rsync 是rsync可执行文件路径

-vzrtopg --password-file=/etc/rsyncd.pwd --progress --delete-after 同步参数

cms@100.1.1.147::web  表示客户端以cms用户进行同步,100.1.1.147是rsync服务器端ip地址,web表示rsync服务器端的@web备份任务。

/usr/local/tomcat6/web 是客户端存放备份文件的位置。