rsync一般情况下会系统便会有这个软件,如果没有请自行安装。
rsync的三种工作模式:
1、单个主机本地进行数据传输 类似与cp命令 另外rsync还有删除功能
2、借助与rcp,ssh通道来进行传输 类似与scp功能
rsync -avz /etc/hosts -e ssh 192.168.12.246:/etc/init.d/
-a:保持文件自身属性       -z:压缩传输         -e:使用通信协议       -v:输出给出进度提示
将 本地的/etc/hosts文件 借助ssh通道来传输到192.168.12.246的/etc/init.d/目录下
3、以守护进程(socket)方式进行传输
当以守护进程的方式传输,需要新建该文件:vim  /etc/rsyncd.conf
uid = rsync     用户
gid = rsync     组
use chroot = no
max connections = 200  连接数
timeout = 300    超时退出
pid file = /var/run/rsyncd.pid       日志
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[lzk]
path = /usr/local/tools/   同步的目录
ignore errors      忽略输出时错误提示
read only = false  读写
list = false
hosts allow = 192.168.12.0/24   允许的网段
hosts deny = 0.0.0.0/32
auth users = slave   认证的用户
secrets file = /etc/rsync.password  将客户端用户的密码写入该文件,不会在要求密码
当创建写好配置文件时使用rsync --daemon启动服务  查看873端口
[root@node1 ~]# lsof -i :873
COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME
rsync   17160 root    4u  IPv6 175668       TCP *:rsync (LISTEN)
rsync   17160 root    5u  IPv4 175669       TCP *:rsync (LISTEN)
在配置文件中我们定义的用户是rsync,所以我们现在创建虚拟用户
useradd rsync -s /sbin/nologin 
将我们共享的文件目录赋予用户权限
chown rsync.rsync /usr/local/tools/
在配置文件中定义了密码文件,我们将认证用户和密码写入该文件中
echo "slave:lzk.1995" > /etc/rsync.password
由于该文件是有我们认证的信息,所以要给最小的权限最安全  chmod 600 /etc/rsync.password 
这时,我们的客户端就配置好了。
我们在客户端也需要创建rsync.password文件,当同步数据时,可以不显示密码提示
echo "lzk.1995" > /etc/rsync.password
给该文件赋予最小最安全的权限
  chmod 600 /etc/rsync.password 
配置到此,我们便可以通过客户端像服务器端推拉数据了
[root@node2 /]# rsync -avz slave@192.168.12.237::lzk /usr/local/tls/    
Password:
可以看出现在还是需要密码,我们添加格外参数
[root@node2 /]# rsync -avz slave@192.168.12.237::lzk /usr/local/tls/ --password-file=/etc/rsync.password 
receiving file list ... done
./
memeda
sent 125 bytes  received 870686 bytes  1741622.00 bytes/sec
total size is 789158893  speedup is 906.23
注意:sync -avz slave@192.168.12.237::lzk /usr/local/tls/ --password-file=/etc/rsync.password
上面标红的字母在ip后面是两个冒号,scp则是一个。另外lzk和服务器端配置文件中[lzk]是对应的。
原文:http://12150465.blog.51cto.com/12140465/1933915