rsync的使用

  rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。在上一次系统附件迁移过程中大显身手。一共是20多万份文件,总计8T。30M/s的传输速度,传输过程中断过几次,不过它有断点续传的功能,实在是太强大了。

  来做个实验,服务端向客户端传数据。

  http://pkgs.repoforge.org/rsync/  根据操作系统的版本下载相应的rsync版本,不然会出现包找不到的问题。

10.10.15.208 服务端
1.根据OS版本下载

[root@VM-10 ~]# uname -a
Linux VM-10.10.X.X 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
下载 rsync-3.1.1-1.el6.rfx.x86

2.安装rsync

安装之前要确认一下以前是否安装过,如果安装过则需要卸载,客户端也一样

[root@VM-10 ]# rpm -q rsync
[root@VM-10 ]# rpm -e rsync

[root@VM-10 ]rpm -ivh rsync-3.1.1-1.el6.rfx.x86_64.rpm

3.配置服务端
# /etc/xinetd.d/rsync 参数server_args加上--config=/etc/rsyncd/rsyncd.conf
[root@VM-10 etc]# 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
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon --config=/etc/rsyncd/rsyncd.conf
        log_on_failure  += USERID
}

# 创建rsync服务目录
[root@VM-10 etc]#mkdir /etc/rsyncd
# 创建配置文件
[root@VM-10 etc]#touch /etc/rsyncd/rsyncd.conf
# 创建密码文件
[root@VM-10 etc]# touch /etc/rsyncd/rsyncd.secrets
#权限修改
[root@VM-10 etc]# chmod 600 /etc/rsyncd/rsyncd.secrets
[root@VM-10 rsyncd]# vi rsyncd.conf
# GLOBAL OPTIONS
uid = root                         
gid = root                                  
use chroot = no                     
read only = yes                            
#limit access to private LANs
hosts allow=10.10.15.25/255.255.255.0 
hosts deny=*                                
max connections = 5                      
pid file = /var/run/rsyncd.pid             
secrets file = /etc/rsyncd/rsyncd.secrets   
#This will give you a separate log file
#log file = /var/log/rsync.log               
#This will log every file transferred - up to 85,000+ per user, per sync
transfer logging = yes                    
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
# MODULE OPTIONS
[gghome]                               
path = /data/gg/                       
list=yes                                   
ignore errors                              
auth users = gg                          

#保存的用户和密码与OS的用户密码没有关系
[root@VM-10 rsyncd]#  vi rsyncd.secrets
gg:gg

4.启动rsync服务
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf

5.查看rsync服务是否启动
netstat -an | grep 873


10.10.15.25 客户端
1.根据OS版本下载

[root@oracle ~]# uname -a
Linux oracle 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:44 EST 2010 x86_64 x86_64 x86_64 GNU/Linux
下载 rsync-3.1.1-1.el5.rfx.x86

2.安装rsync
[root@oracle ~]rpm -ivh rsync-3.1.1-1.el5.rfx.x86

3.开始同步

[root@oracle ~]/usr/bin/rsync

#gg对应的是服务端中文件/etc/rsyncd/rsyncd.secrets, gghome是/etc/rsyncd/rsyncd.conf中的一个锚,/data/gg/是10.10.15.25上的一个位置。
[root@oracle ~]rsync -avzP [email protected]::gghome  /data/gg/  


服务端参数说明:
模块参数
模块参数主要用于定义 rsync 服务器哪个目录要被同步。模块声明的格式必须为 [module] 形式,这个名字就是在 rsync 客户端看到的名字,类似于 Samba 服务器提供的共享名。而服务器真正同步的数据是通过 path 来指定的。可以根据自己的需要,来指定多个模块,模块中可以定义以下参数:

基本模块参数
path
指定当前模块在 rsync 服务器上的同步路径,该参数是必须指定的
comment
给模块指定一个描述,该描述连同模块名在客户连接得到模块列表时显示给客户
模块控制参数
use chroot
若为 true,则 rsync 在传输文件之前首先 chroot 到 path 参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要 root 权限,并且不能备份指向 path 外部的符号连接所指向的目录文件。
默认值true
uid
指定该模块以指定的 UID 传输文件。
默认值 nobody
gid
指定该模块以指定的 GID 传输文件。
默认值 nobody
max connections
定该模块的最大并发连接数量以保护服务器,超过限制的连接请求将被告知随后再试。
默认值 0 不限制
read only
指定是否允许客户上传文件。若为 true 则不允许上传;若为 false 并且服务器目录也具有读写权限则允许上传。
默认值 true
write only
指定是否允许客户下载文件。若为 true 则不允许下载;若为 false 并且服务器目录也具有读权限则允许下载。
默认值 false
模块认证参数
hosts allow
用一个主机列表指定哪些主机客户允许连接该模块。不匹配主机列表的主机将被拒绝
默认值 *


hosts deny
用一个主机列表指定哪些主机客户不允许连接该模块。
默认值 空
auth users
指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块。这里的用户和系统用户没有任何关系。用户名和口令以明文方式存放在 secrets file 参数指定的文件中
默认匿名
secrets file
指定一个 rsync 认证口令文件。只有在 auth users 被定义时,该文件才起作用。
默认值 空
strict modes
指定是否监测口令文件的权限。若为 true 则口令文件只能被 rsync 服务器运行身份的用户访问,其他任何用户不可以访问该文件。
默认值 true
 - rsync 认证口令文件的权限一定是 600,否则客户端将不能连接服务器。
rsync 认证口令文件中每一行指定一个 用户名:口令 对,格式为:username:passwd
一般来说口令最好不要超过8个字符。若您只配置匿名访问的 rsync 服务器,则无需设置上述参数。

你可能感兴趣的:(rsync的使用)