先贴一个链接:http://www.cnblogs.com/zhenhui/p/5715840.html
本着自己写的blog最好看懂的原则,重复一遍步骤
介绍:rsync主要用来在服务器之间增量传输体积较大的文件。以下会使用“客户端”和"服务端"来区分服务器。【but,其实就是主动执行rsync命令的一侧叫客户端,存在守护进程并被动执行rsync服务的一侧,叫服务端。其实一般都可以是双向的啊,哎】
rsync在服务器间的认证,与普通用户登录服务器的认证不同,需要按照rsync的配置规则配置。
1.检查客户端和服务端是否都成功安装rsync
2.启动双端的rsync服务
只独立运行rsync服务的命令:/usr/bin/rsync --daemon
最好关闭防火墙,保证rsync使用的873端口处于监听状态。
3.配置服务端(hostip)的rsyncd.conf(主配置文件)
主配置文件位于/etc目录,如果当前目录没有该文件,可以自行创建
uid = www #运行rsync守护进程的用户,要让客户端知道
gid = www #运行rsync守护进程的组,要让客户端知道
max connections = 200 #最大连接数,可以同时执行的任务数
timeout = 300 #超时时间
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/ryncd.log
use chroot = yes #改变程序执行时参考的根目录
#Module 可以配置很多module,每一个对应一种独立的rsync数据传输渠道
[module_name_example] #这个必须指定,客户端通过这个module名称来查找服务端守护进程可以接受数据的位置
comment=comment example for this module #这个是该模块的注释
path=/data0/testdir/test #必须得是已有路径,用来存放接收到的数据
ignore errors=yes #忽略错误,建议设为yes,否则传输过程中容易中断
list=false #可以将该客户端设为隐藏
read only = no #指定客户端是否可以上传,no并且rsync用户也具有写权限时,可以上传
transfer logging=yes #将传输操作记录传到传输日志文件
【划重点,一定要注意权限,如果要同步数据,那么path下要给运行rsync守护进程的用户打开权限】
4.配置客户端
如果是双向同步,那就跟上面一样。否则就是保证服务启动着就行。
5.执行rsync命令
push客户端本地文件到服务端:rsync -atuzrRp --progress <the file to transfer> <username of host>@<hostip>::<module_name>
the file to transer:就是要传的文件
username of host:服务器上的登录用户名(不一定要是root,也跟守护进程用户名无关)
module_name:服务器上配置的module
pull服务端文件到本地:
rsync -atuzrRp --progress <username>@<hostIp>::<moduleName>/<fileName> <localDirectory>
===========错误处理==============
systemctl list-unit-files | grep rsync