使用rsync +cwrsync实现windows和linux的文件同步

因为项目中有需求,须要实现windows和linux的文件同步,通过项目大大的推荐,决定使用rsync +cwrsync实现windows和linux的文件同步。html

在配置和实际的使用过程当中遇到了不少问题,也查阅了不少资料,用了3个多小时才弄好。因而就想要把安装过程写成博客,一方面巩固一下安装的过程,一方面但愿可以帮助到在安装过程当中遇到一样过程的人。linux

-------------------------------------------------分割线-------------------------------------------------vim

安装环境:CentOS 7windows

一.服务器端配置centos

1.安装rsync    安全

yum install rsync
服务器

2.配置rsync     tcp

vim /etc/rsyncd.conf (若是没有此文件,请手动建立。使用 touch 或者 vim 直接编辑也是能够建立的)ui

###################################################centos7

#下面是个人配置文件

uid = root #模块传输文件时守护进程应该具备的uid

gid = root #模块传输文件时守护进程应该具备的gid

#若是"use chroot"指定为true,那么rsync在传输文件之前首先chroot到path参数所指定的目录下。这样作的缘由是实现额外的安全防御,可是缺点是须要以roots权限,而且不能备份指向外部的符号链接所指向的目录文件。默认状况下chroot值为true

use chroot = no

max connections = 4 #最大链接数

pid file = /var/run/rsyncd.pid

lock file =/var/run/rsyncd.lock

log file =/var/log/rsyncd.log

 #容许链接的ip,在演示中使用的云服务器就直接写*,表示无限制 若是要规定ip或者ip段须要进行其余配置

例如:192.168.1.0/255.255.255.0 

hosts allow = *

timeout = 900 #超时设置

port = 873 #默认端口为873

#如下为设置同步的目录

[test]

path = /home/test #同步文件夹

#指定在 rsync 服务器上运行 delete 操做时是否忽略 I/O 错误。通常来讲 rsync 在出现 I/O 错误时将将跳过 –delete 操做,以防止由于暂时的资源不足或其它 I/O 错误致使的严重问题。

ignore errors

read only = yes

list = yes 

hosts allow = * #指定链接的ip

auth users = test #指定同步的用户

#指定上述帐号的密码文件,文件和拓展名能够自定义

secrets file = /etc/rsync.pass 

###################################################

3.新建rsyn.pass文件

该文件主要是指定链接用户的用户名和密码

格式为 name:password

须要注意的是须要修改此文件的权限不然链接时会出错

chmod 600 /etc/rsync.pass

4.设置链接提示信息

vim  /var/rsyncd.motd

5.防火墙设置

由于是centos7因此采用的是firewall

firewall-cmd --zone=public --add-port=873/tcp --permanent

命令含义:

--zone #做用域

--add-port=873/tcp  #添加端口,格式为:端口/通信协议

 --permanent   #永久生效,没有此参数重启后失效

 重启防火墙

 firewall-cmd --reload

6.启动rsync

rsync --daemon --config=/etc/rsyncd.conf

--daemon表示后台启动 --config 表示使用对应的配置文件

7.须要注意的是 

同步文件夹须要提早建立,而且修改其权限

chmod 655 test


二.客户端链接

windows机器上安装cwrsync

到安装目录下执行:

rsync.exe -vzrtopgu --progress --update test@ip::test /cygdrive/D/h

参数配置可参考官方文档或者如下博客:

http://www.cnblogs.com/mchina/p/2829944.html

test@ip::test  前面那个test为链接用户 ip 为服务器ip 后面那个test表示指定的模块

/cygdrive/D/h 表示本地的同步文件夹/D/h 为同步文件夹

此时windows电脑文件夹内容已经和服务器同步了

若是在链接过程当中遇到了问题能够参考:

http://www.jb51.net/article/31920.htm

三.写在后面

在安装过程当中困扰我最大的问题就是在服务器配置好之后一直链接不起。此次的演示环境是centos7,在本身摸索安装时使用的系统是centos6.5.仍是有一些不一样。在centos6.5中我使用的是xinetd+rsync。可是我使用xinetd启动时,使用的是  /etc/init.d/xinetd start 

可是一直会出现:

cwrsync rsync error rsync error: some files/attrs were not transferred 

错误,在参考了

http://www.jb51.net/article/34864.htm

仍是没办法解决。最后使用 rsync --daemon --config=/etc/rsyncd.conf 启动时问题莫名其名就获得了解决,本身也没有想通是为何。因此在rsync上还须要多探索和研究。

参考:

http://www.cnblogs.com/mchina/p/2829944.html

http://blog.itpub.net/29569333/viewspace-1157298/

相关文章
相关标签/搜索