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 是客户端存放备份文件的位置。