一、 什么是 rsync

rsync 是一个 Unix 系统下的文件同步和传输工具。它本来是用以取代rcp的工具,随着它的功能的不断完善,渐渐的rsync成为独树一帜的备份同步工具,目前它是由rsync.samba.org团队维护的。Rsync使用所谓的"rsync 算法",提供一个非常快速的档案传输,使本地和远端二部主机之间的文件达到同步,它主要是传送二个文件的异动部份,而非每次都整份传送,因此速度相当地快。
它具备以下特性:
1. 能更新整个目录和树和文件系统
2. 有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间
3. 对于安装来说,无任何特殊权限要求
4. 对于多个文件来说,内部流水线减少文件等待的延时
5. 能用 rsh、ssh 或直接端口做为传输入端口
6. 支持匿名 rsync 同步文件,是理想的镜像工具;
server端配置
1.下载源码包,并进行解压.
wget http://rsync.samba.org/ftp/rsync/rsync-3.0.6.tar.gz
tar -zxvf rsync.3X.tar.gz -C /usr/local/src
./configure && make && make install
2.编辑配置文件.
vi /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = no
max connections = 5
#hosts allow =
#hosts deny =
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/run/rsyncd.log
[perl]
path = /root/perl
comment = rsync
readonly = no   #允许上传和下载
ignore errors
list = no
auth users = evil
secrets file = /etc/rsync_passwd
保存退出即可.
3.编辑secret文件.
evil:redhat      ## 采用类似于svn明文密码
4.启动server.
# rsync --daemon --config=/etc/rsyncd.conf  --port 3344 #端口可自己指定  默认为873
 
   client端配置.
1.解包安装
tar -zxvf rsync.3X.tar.gz -C /usr/local/src
./configure && make && make install
2.密码文件
vim /etc/rsync_passwd
redhat   ## 只写密码即可.
 
rsync -avzP --delete --password-file=/etc/rsync_passwd evil@192.168.1.101::perl /root/perl
参数:-a: 递归,并保留原文件的所有属性.
     -v:显示详细信息.
     -z:压缩进行传输. 
     -P:显示备份过程.
    –-delete 删除那些DST中SRC没有的文件
rsync -avzP --delete --rsh="ssh -l root" --password-file=/etc/rsync_passwd --include="*/" -exclude="*" evil@192.168.1.101::perl /root/perl
##只同步目录结构而不同步文件.并采取ssh验证方式.
上传: rsync -avzP --timeout=10 --rsh="ssh -l root" --password-file=/etc/rsync_passwd /root/perl evil@192.168.1.101:perl