打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

1.rsync 简介

Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录。

  Rsync 是用于取代rcp的一个工具,Rsync使用所谓的 “Rsync 算法” 来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。您可以参考 How Rsync Works A Practical Overview 进一步了解 rsync 的运作机制。

  Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。此外,它在windows平台下也有相应的版本,比较知名的有cwRsync和Sync2NAS。

  Rsync 的初始作者是 Andrew Tridgell 和 Paul Mackerras,它当前由 http://rsync.samba.org维护。

  Rsync的基本特点如下:

  1. 可以镜像保存整个目录树和文件系统;

  2. 可以很容易做到保持原来文件的权限、时间、软硬链接等;

  3. 无须特殊权限即可安装;

  4. 优化的流程,文件传输效率高;

  5. 可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;

  6. 支持匿名传输,以方便进行网站镜像。

  在使用 rsync 进行远程同步时,可以使用两种方式:远程 Shell 方式(建议使用 ssh,用户验证由 ssh 负责)和 C/S 方式(即客户连接远程 rsync 服务器,用户验证由 rsync 服务器负责)。

  无论本地同步目录还是远程同步数据,首次运行时将会把全部文件拷贝一次,以后再运行时将只拷贝有变化的文件(对于新文件)或文件的变化部分(对于原有文件)。

  rsync 在首次复制时没有速度优势,速度不如 tar,因此当数据量很大时您可以考虑先使用 tar 进行首次复制,然后再使用 rsync 进行数据同步。
  

2.服务器端安装rsync服务

可以通过yum安装

yum install rsync

也可以通过编译安装

rysnc的官方网站:http://rsync.samba.org可以从上面得到最新的版本。

注:在用源码包编译安装之前,您得安装gcc等编译开具才行

tar xvf  rsync-3.0.9.tar.gzcd rsync-3.0.9./configure --prefix=/usrmake && make install
  • 1
  • 2
  • 3
  • 4
  • 5

3.rsync服务器的配置文件rsyncd.conf

rsync的主要有以下三个配置文件:

  • rsyncd.conf(主配置文件)
  • rsyncd.passwd(密码文件)
  • rsyncd.motd(rysnc服务器信息)

服务器配置文件(/etc/rsyncd/rsyncd.conf),该文件默认不存在,请创建:

在/etc目录下创建一个rsyncd的目录,我们用来存放rsyncd.conf 、rsyncd.passwd、rsyncd.motd文件

mkdir rsyncd

创建文件

touch rsyncd.conftouch rsyncd.passwdtouch rsyncd.motdchmod 600 rsyncd.pwsswd        #为了密码的安全性,我们把权限设为600
  • 1
  • 2
  • 3
  • 4
3.1 配置rsyncd.conf文件
# Distributed under the terms of the GNU General Public License v2# Minimal configuration file for rsync daemon# See rsync(1) and rsyncd.conf(5) man pages for help# This line is required by the /etc/init.d/rsyncd script#告诉进程写到 /var/run/rsyncd.pid 文件中pid file = /var/run/rsyncd.pid lock file =/var/run/rsyncd.lock#日志文件log file =/var/log/rsyncd.loglog format = %t %a %m %f %bsyslog facility = local3#指定运行端口,默认是873port = 8877     #指定服务器IP地址address = 192.168.56.102#服务器端传输文件时,要发哪个用户和用户组来执行,默认是nobodyuid = rootgid = root#如果"use chroot"指定为yes,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要以root权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为yesuse chroot = no#客户端最多连接数max connections = 5motd file = /etc/rsyncd/rsyncd.motdtimeout = 300#同步模块[test_data] #指定文件目录所在路径path =  /home/test#list 意思是把rsync 服务器上提供同步数据的目录在服务器上模块是否显示列出来。默认是yes 。如果你不想列出来,就no ;如果是no是比较安全的,至少别人不知道你的服务器上提供了哪些目录。你自己知道就行了list=no#指定在 rsync 服务器上运行 delete 操作时是否忽略 I/O 错误。一般来说 rsync 在出现 I/O 错误时将将跳过 –delete 操作,以防止因为暂时的资源不足或其它 I/O 错误导致的严重问题。ignore errors#如果为yes,表示只读本地文件就无法同步到服务器read only = no#允许连接的ip,在演示中使用的云服务器就直接写*,表示无限制 如果要规定ip或者ip段(10.1.4.0/255.255.255.0)需要进行其他配置hosts allow=10.1.4.0/255.255.255.0#hosts deny=*#auth users 是必须在服务器上存在的真实的系统用户,如果你想用多个用户,那就以,号隔开auth users = root#密码存在rsyncd.passwd文件里secrets file = /etc/rsyncd/rsyncd.passwd
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
3.2 配置rsyncd.passwd文件

rsyncd.passwd的内容格式用户名:密码

root:123456

**注意:
将rsyncd.passwd这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功! 出于安全目的,文件的属性必需是只有属主可读**

3.3 配置rsyncd.motd 文件

rsyncd.motd 文件类似ftp服务器登录时,我们所看到的提示信息……,当然这在全局定义变量时,并不是必须的,你可以用#号注掉,或删除

  ++++++++++++++++++++++++++++++++++++++++++++++  欢迎使用  ++++++++++++++++++++++++++++++++++++++++++++++
  • 1
  • 2
  • 3
  • 4

4. 启动rsync服务器

防火墙配置

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8877 -j ACCEPT

启动rsync服务

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

在rsync服务器上查看提供了哪些可用的数据源。

rsync --list-only root@192.168.56.102::test_data

5.安装cwRsync客户端

下载地址:http://itefix.no/cwrsync/

直接解压,到bin文件目录下执行

rsync --port=8877 -vzrtopg --progress --delete root@192.168.56.102::test_data /cygdrive/d/data
  • 1
  • 2
  • –port=8877 #端口
  • root #执行数据同步的用户
  • 192.168.56.102 #服务器地址
  • test_data #模块名称
  • –delete #从cwRsync客户端D:\data目录中删除与Rsync服务端/home/test目录中不相同的数据,即保证两边的数据完全一致
  • /cygdrive/d/data 表示本地的同步文件夹/d/data 为同步文件夹

6. 定时同步文件

在cwRsync客户端的任务计划中添加批处理脚本文件,每天凌晨02:30钟自动同步Rsync服务端/data/share目录中的数据到D:\data目录:
cwrsync的bin目录新建passwd.txt输入密码然后保存
继续在bin目录新建samba.bat输入

@echo offecho.echo 开始同步数据,请稍等...echo.cd C:\Program Files\cwRsync\binrsync --port=8877 -vzrtopg --progress --delete root@192.168.56.102::test_data /cygdrive/d/data < passwd.txtecho.echo 数据同步完成echo.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

添加批处理脚本到Windows任务计划
开始-设置-控制面板-任务计划
打开添加任务计划,下一步
浏览,选择打开C:\Program Files\cwRsync\bin目录里面的samba.bat
执行这个任务,选择每天,下一步
起始时间:02:30
运行这个任务:每天,下一步
输入Windows系统管理员的登录密码,下一步
完成!
CentOS Rsync服务端与Windows cwRsync客户端实现数据同步完成!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
windows下使用cwRsync定期备份网站(服务器文件同步)
rsync for windows 详细使用教程
windwos与linux基于inotify实现文件实时同步实战记录
rsync命令详解
Rsync实现文件的同步
redhat linux rsync配置
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服