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

天涯浪子 提交于 2019-12-06 08:22:04

由于项目中有需求,需要实现windows和linux的文件同步,经过项目大大的推荐,决定使用rsync +cwrsync实现windows和linux的文件同步。

在配置和实际的使用过程中遇到了很多问题,也查阅了很多资料,用了3个多小时才弄好。于是就想要把安装过程写成博客,一方面巩固一下安装的过程,一方面希望能够帮助到在安装过程中遇到同样过程的人。

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

安装环境:CentOS 7

一.服务器端配置

1.安装rsync    

yum install rsync

2.配置rsync     

vim /etc/rsyncd.conf (如果没有此文件,请手动创建。使用 touch 或者 vim 直接编辑也是可以创建的)

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

#下面是我的配置文件

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/








易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!