本文由秀依林枫提供友情赞助,首发于烂泥行天下

上篇文章中,我们介绍了有关Linux系统之间的文件同步,这篇文章我们来介绍下,有关Linux系统与windows系统,以及windows系统与windows系统之间的文件同步。

这篇文章我们需要分三个部分进行讲解:

1、 windows系统同步文件到Linux系统

2、 Linux系统同步文件到windows系统

3、 windows与windows系统之间的文件同步

一、windows系统同步文件到Linux系统

要使windows系统下的文件同步到Linux系统,我们需要安装rsync的windows客户端cwRsync。

cwRsync我们可以去下面这个连接进行下载:

https://www.itefix.net/cwrsync

当然,我们也可以去这个连接下载《cwRsync5.4.1客户端》。

目前cwRsync的版本是5.4.1,我们下载解压后配置下,就可以正常使用。如下:

注意:图中的cwrsync.cmd文件,我们可以双击该文件进行配置cwRsync,也可以自行进行配置。但是通过我的实际验证该文件不能成功配置cwRsync,所以建议手工进行配置。

其实配置就是把目前cwRsync所在的路径加入到系统的环境变量中。

手工配置如下:

通过上图,我们可以看到rsync客户端cwRsync已经安装完毕。

注意:windows下的rsync客户端与Linux下rsync客户端配置是一样的,只是在路径中有不同之处。

下面就开始配置rsync客户端,创建rsync的密码文件,如下:

rsync服务端的配置与《烂泥:linux文件同步之rsync学习(一)》这篇文章同一个环境。

我们现在的要求是把rsync客户端E:\www文件夹下的文件同步到rsync服务器上。

rsync服务器是192.168.199.247,rsync客户端为192.168.199.245。

rsync服务器已经正常运行,相关配置文件如下:

下面我们的所有操作都是在rsync客户端上进行的,执行如下命令:

rsync -avz --delete --progress /cygdrive/e/www apache@192.168.199.247::www --password-file=/cygdrive/e/rsyncd.password

注意:上述命令行中的/cygdrive/e/表示windows系统的E盘,/cygdrive/e/rsyncd.password表示E盘下的rsyncd.password文件

通过上图,我们可以很明显的看到windows系统的文件已经同步到Linux系统上了。

但是这个同步还是有一个缺点的就是不能实时同步,windows系统不像Linux系统那样支持inotify。

但是我们可以通过windows自带的任务计划,让系统自行进行同步。尽管这个和服务器还是有一定的时间差的,但是有总比没有好。

我们可以把上述命令,写到一个批处理文件中,然后在任务计划中进行配置。如下:

二、Linux系统同步文件到windows系统

要把Linux系统文件同步奥windows系统,需要我们在windows系统上配置rsync服务端,即安装cwRsyncserver。

cwRsyncserver目前网络上的免费版本为4.1.0,我们可以去这个连接下载《cwRsync_server4.1.0下载》。

cwRsyncServer下载完毕后,进行安装即可。其中有一点需要注意,就是在安装的过程中,会出现如下的提示:

这个对话框是要你输入cwRsyncServer在系统中新建用户的用户名及密码。

cwRsyncServer安装完毕后,我们就可以在windows的服务中看到rsync服务。如下:

rsyncserver安装完毕后,我们现在来配置rsyncserver。windows下rsyncserver的配置和Linux下rsync服务配置没有多大的区别。

rsyncserver安装完毕后,配置文件已经形成。我们可以在其的安装目录下看到。如下:

我们现在来修改rsync的配置文件rsyncd.conf,如下:

use chroot = false

strict modes = false

hosts allow = *

log file = rsyncd.log

[www]

path = /cygdrive/e/www/

ignore errors

read only = no

list = no

hosts allow = 192.168.199.0/255.255.255.0

auth users = apache

secrets file = /cygdrive/e/rsyncd.password

配置文件rsyncd.conf修改完毕后,我们来创建www模块的同步文件夹,如下:

注意:同步文件夹创建完毕后,一定要把我们在前面安装rsyncserver时创建的用户,对该文件夹具有完全所有权。如下:

同步文件夹创建完毕后,我们再来创建同步时的密码文件,如下:

注意:该文件创建完毕后,一定要使用chmod命令修改其权限。这个和Linux系统上是一样的。

chmod命令在rsyncserver的bin目录下,我们可以直接使用。如下:

如果不使用chmod命令修改的话,回报以下的错误信息:

chmod 600 rsyncd.password

以上全部修改并配置完毕后,我们就可以启动rsyncserver,如下:

现在在Linux机器上检查是否可以正常连接,rsync服务端。如下:

通过上图,我们可以看到Linux机器是可以正常连接rsync服务端的。

现在我们开始在rsync客户端进行同步,如下:

rsync -avz /www/ apache@192.168.199.245::www --password-file=/etc/rsyncd.password

切换到rsync服务端,查看是否同步过来。如下:

通过上图,可以看到Linux已经把文件同步到windows系统中。

因为rsync客户端是Linux系统,所以我们也可以实时的把Linux系统的文件同步到windows系统上。

同步脚本如下:

#!/bin/bash

src=/root/www/

dest=www

ip=192.168.199.247

/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y%H:%M' --format '%T %w %f' -e modify,delete,create,attrib $src | while read DATE TIME DIR FILE;

do

filechange=${DIR}${FILE}

/usr/bin/rsync -avz --delete --progress $src apache@$ip::$dest --password-file=/etc/rsyncd.password &

echo "At ${TIME} on ${DATE}, file $filechange was backed up via rsynce" >>/tmp/rsync.log 2>&1

done

三、 windows与windows系统之间的文件同步

windows与windows系统之间的文件同步,我们只需要在windows系统上安装rsync相应的客户端与服务端即可。

rsync服务端192.168.199.245,rsync客户端192.168.199.244。

对于rsync客户端是windows系统的,我们的rsync服务端要进行一些修改否则会提示出错。出错信息如下:

我们需要在rsyncd.conf配置文件中加入uid和gid,如下:

然后重启rsyncserver即可。

rsync客户端测试rsync服务端,如下:

telnet 192.168.199.245 873

客户端创建完毕密码文件后,我们就可以来同步。如下:

rsync -avz /cygdrive/e/soft apache@192.168.199.245::www --password-file=/cygdrive/e/rsyncd.password

同步完毕后,我们来切换到rsync服务端查看,如下:

通过上图,我们可以看到rsync客户端确实已经把文件同步到rsync服务端上了。

注意:如果你在同步时,碰到系统一直提示输入密码,即使你在rsync同步命令中加入了密码文件。

这时我们就需要先建立密码文件rsyncd.password并把密码也存入到里面,然后在建议一个用于专门存储密码的文件passwd.txt。

passwd.txt文件与rsyncd.password文件的内容一模一样即可。如下:

然后使用如下的同步命令进行同步即可:

rsync -avz /cygdrive/e/soft apache@192.168.199.245::www --password-file=/cygdrive/e/rsyncd.password < E:\passwd.txt

注意:windows系统与windows系统之间目前还不能实现文件的实时同步,我们还只能通过任务计划来实现定时的同步任务。

烂泥:Linux系统与windows系统文件同步的更多相关文章

  1. 配置VirtualBox Linux系统与Windows共享文件

    手动方式配置VirtualBox Linux系统与Windows共享文件 首先,要安装VirtualBox自带的扩展工具,这个ISO可以在虚拟主机安装目录下找到. 将这个文件Copy到你的Linux主 ...

  2. Linux系统挂载Windows系统下的共享文件

    声明:本文是小编借鉴大神们的经验,仅供学习使用. 第一步:在Windows系统上选择要共享的文件夹,右击“属性”-“共享”-“高级共享”-勾选“共享此文件”-设置共享名-“权限”-“添加”-“高级”- ...

  3. (转)Linux系统sersync数据实时同步

    Linux系统sersync数据实时同步 原文:http://blog.csdn.net/mingongge/article/details/52985259 前面介绍了以守护进程的方式传输或同步数据 ...

  4. linux系统创建windows启动盘

    平时工作中用到linux的操作命令较多,因此为了方便,就给电脑装了双系统,一般工作的时候,都选择进入linux系统.但是今天有件工作之外的事情需要解决下:创建一个windows启动盘.如果按照往常来说 ...

  5. VirtualBox内Linux系统与Windows共享文件夹

    在日常工作或学习中我们经常需要在一台电脑上同时使用Windows和Linux(这里以Ubuntu为例)两个系统,我们通常的做法有两种: 一种安装双系统(双系统的安装方法经验里已经有很多,大家可以去参照 ...

  6. linux系统装windows时需要注意的问题

    (1)    利用windows安装光盘安装XP.WIN7系统时,sata接口的硬盘要将其设置为兼容模式或者IDE模式才能安装.我认为这些盗版光盘安装系统的软件并没有支持sata接口硬盘的驱动程序才导 ...

  7. virtualbox中linux系统与windows实现共享文件夹

    最近有一次,需要在linux获取在我windows系统里的安装包,但是呢不论如何也拿不过去. virtualbox虽然提供了双向拖放,但是实在是太不健壮了,感觉基本就没好使过. 于是我想到了用共享文件 ...

  8. Linux系统挂载Windows的共享文件夹

    解决方案 在window上文件设置共享权限 在Linux上在 使用mount 命令挂载 Windows 共享文件夹 实验环境 redhat linux 7操作系统 服务器IP 192.168.100. ...

  9. VMware下的Linux系统中Windows的共享目录,不支持创建软连接

    [问题]  在编译VMware下的Linux系统对从Windows中共享过来的文件,进行编译的时候,遇到:  ln: creating symbolic link XXXXXX : Operation ...

随机推荐

  1. MongoDB学习-在.NET中的简单操作

    1.新建MVC项目, 管理NuGet包,进入下载MongDB.net库文件 2.新增项目DAL数据访问层,引用以下库文件: 3.C# 访问MongoDB通用方法类: using MongoDB.Dri ...

  2. 从启动日志看Spring IOC的初始化和Bean生命周期

    一.Tomcat中启动IoC容器的日志 启动Tomcat等容器时,控制台每次都打印出一些日志. 最近刚好在研究Spring源码,所以换个角度,从启动日志来简单的看看Spring的初始化过程! 以下是T ...

  3. 如何创建C# Closure ?

    JavaScript中一个重要的概念就是闭包,闭包在JavaScript中有大量的应用,但是你知道么?C#也可以创建Closure.下面就介绍一下如何在C#中创建神奇的闭包. 在这之前,我们必须先知道 ...

  4. 基于 jQuery 实现垂直滑动的手风琴效果

    今天我们要与大家分享一个漂亮而灵活的垂直 jQuery 手风琴效果.其主要思想是扩大手风琴片上的点击和显示更多的信息.其他内容片段将变得不那么透明.当使用一个导航箭头导航下一个片段,新的片会从顶部或底 ...

  5. 移动端-js触摸事件

    开发者工具 在移动开发中,一种较为容易的做法是,先在桌面上开始原型设计,然后再在打算要支持的设备上处理移动特有的部分.多点触摸正是难以在PC上进行测试的那些功能之一,因为大部分的PC都没有触摸输入. ...

  6. JavaScript学习笔记-setTimeout应用

    setTimeout应用 var ids = [];function foo1(i) { this.i = i; console.log('i = '+i); ids[0] = setTimeout( ...

  7. 每次点击按钮后,判断页面是否已经有该行,没有弹出repeater的一行,并给他赋一个这行附值,没有则跳出

    protected void btnAdd_click(object sender, EventArgs e) { try { //记录第几次追加 pressCount++; typeString.A ...

  8. 设置 Xcode 自动生成代码片段

    一.什么是代码片段 当在Xcode中输入dowhile并回车后,Xcode会出现下图所示的提示代码: 这就是代码片段,目的是使程序员以最快的速度输入常用的代码片段,提高编程效率.该功能是从Xcode4 ...

  9. 最全面的NSDateHelper 分享

    NSDateUtil 分享 (ios开发交流群:486468672) 代码下载:https://github.com/foxswang/NSDateUtil 史上最全面NSDate Utility 没 ...

  10. SQLite Design and Concepts

    API 分为两大类 core API. 基本的SQL操作 extension API. 创建自定义的SQL操作. 基本数据结构 需要了解的组成部分有连接.statments.B树.pager. 为了写 ...