首页 > 代码库 > 工作在服务器模式下的rsync的安装、配置与使用22

工作在服务器模式下的rsync的安装、配置与使用22

rsync命令可以用于在本地系统中复制文件(如同cp命令),也可以在本地和远程主机之间复制文件(如同scp命令),还可以工作在服务器模式下(使用功能上类似FTPSAMBA等)。本文主要介绍rsync在服务器模式下的配置和应用举例。

rsync命令常用选项

-n: 仅做执行测试,不做实际动作
-v, --verbose
输出详细执行信息
-q, --quiet
静默模式
-c, --checksum
开启校验功能,强制对文件传输进行校验
-r, --recursive
:递归复制
-a, --archives
:归档,保留文件的所有原有属性
-p, --perms
保留文件的权限
-t, --times
保留文件的时间戳
-l, --links
保留文件的符号链接
-g, --group
保留文件的属组
-o, --owner
保留文件的属主
-D, --devices
保留设备文件

-e ssh: 使用ssh协议作承载
-z:
对文件压缩后传输

--progress:显示进度条
--stats:
显示如何执行压缩和传输

 

注意rsync命令在指定复制源时,如果源参数的末尾有斜线,就会复制指定目录的内容,而不复制目录本身;如果没有斜线,则会复制目录本身;目标参数末尾的斜线没有作用。而本地cp命令,以上两种情况下,均是复制目录本身及目录下的内容。举例:

# rsync -r /tmp/data /backups/ 把目录data本身连同data目录下的所有文件同步至/backups目录中

# rsync -r /tmp/data/ /backups/ data目录下的所有文件同步至/backups目录中

# cp -r /tmp/data /backups/ 把目录data本身连同data目录下的所有文件同步至/backups目录中

# cp -r /tmp/data/ /backups/ 把目录data本身连同data目录下的所有文件同步至/backups目录中

 

rsync服务器端的安装、配置

1 安装xinetd(CentOS6.5中默认安装了rsync包,如果没有安装,则用yum一并安装)

# yum -y install xinetd

2 rsync服务提供配置文件,配置文件的存放位置为/etc/rsyncd.conf(获取帮助的方式:man rsyncd.conf)。rsync配置文件的内容主要由全局配置参数和多个rsync共享配置段组成。举例:

# Global Settings
uid = nobody
gid = nobody
use chroot = no
max connections = 5
strict modes = yes
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log

[mydata]
path = /tmp/mydata
ignore errors = yes
read only = no
write only = no
hosts allow = 172.16.0.0/16 192.168.100.0/24
hosts deny = *
list = false
uid = zjp
gid = zjp
auth users = myuser, ruser1, ruser2, ruser3
secrets file = /etc/rsyncd.passwd

 

注意:

1. 类似于samba,共享段中的名字“mydata”作为访问远程资源的访问名,映射在“path”参数中定义的资源在主机中实际的存放路径。在后面的测试应用中有具体例子可以参考。

2. “hosts allow”定以可以访问该rsync服务的主机或网络白名单。

3. “uid”“gid”定义rsync在执行操作时文件的属主和属组。

4. “auth users”定义rsync远程访问认证时允许的用户列表,这是rsync服务自己定义的用户,和系统定义的用户没有任何关系。“secrets file”则存放这些用户的密码的文件存放位置。

 

3 配置密码文件/etc/rsyncd.passwd。用户密码认证文件的内容:

myuser:mypass
ruser1:user1pass
ruser2:user2pass
ruser3:user3pass

注意:密码文件的权限必须设置为‘600’

# chmod 600 /etc/rsyncd.passwd

4) 配置服务能够启动,并启动服务(rsync服务侦听在tcp873端口)。

# chkconfig rsync on

# service xinetd start

 

客户端连接rsync服务端的测试

从服务端同步资源到客户端本地的rsync命令用法:

rsync [OPTION...] [USER@]HOST::SRC... [DEST]

rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]

举例:

image

从客户端本地把资源同步到服务端的rsync命令用法:

rsync [OPTION...] SRC... [USER@]HOST::DEST

rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

举例:

image

注意:

  • 如果需要做周期性操作,将rsync命令写入cronttab中,可以做周期性同步命令。如果需要作用户认证的话,此种情况必须用"--password-file"参数指定用户的密码文件存放位置。该文件也需要执行权限为"600",文件属主是执行rsync命令的用户。文件的内容为访问用户的密码。正如上面的应用场景,是以"myuser"作为访问用户,则/etc/rsyncd.passwd文件中的内容如下:

       mypass

  • 从服务器同步所有资源到客户端本地时,带上"-r"选项参数。

 

工作在服务器模式下的rsync的安装、配置与使用22