rsync命令可以用于在本地系统中复制文件(如同cp命令),也可以在本地和远程主机之间复制文件(如同scp命令),还可以工作在服务器模式下(使用功能上类似FTP、SAMBA等)。本文主要介绍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服务侦听在tcp的873端口)。
# chkconfig rsync on
# service xinetd start
客户端连接rsync服务端的测试
从服务端同步资源到客户端本地的rsync命令用法:
rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
举例:
从客户端本地把资源同步到服务端的rsync命令用法:
rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
举例:
注意:
mypass
原文地址:http://deshanrenjian.blog.51cto.com/9324633/1564681