烂泥:Linux系统与windows系统文件同步

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

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

这篇文章咱们须要分三个部分进行讲解:windows

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

二、 Linux系统同步文件到windows系统服务器

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

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

要使windows系统下的文件同步到Linux系统,咱们须要安装rsync的windows客户端cwRsync。测试

cwRsync咱们能够去下面这个链接进行下载:ui

https://www.itefix.net/cwrsync.net

固然,咱们也能够去这个链接下载《cwRsync5.4.1客户端》。

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

clip_image001

注意:图中的cwrsync.cmd文件,咱们能够双击该文件进行配置cwRsync,也能够自行进行配置。可是经过个人实际验证该文件不能成功配置cwRsync,因此建议手工进行配置。

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

手工配置以下:

clip_image002

clip_image003

经过上图,咱们能够看到rsync客户端cwRsync已经安装完毕。

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

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

clip_image004

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

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

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

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

clip_image005

clip_image006

下面咱们的全部操做都是在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文件

clip_image007

clip_image008

经过上图,咱们能够很明显的看到windows系统的文件已经同步到Linux系统上了。

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

可是咱们能够经过windows自带的任务计划,让系统自行进行同步。尽管这个和服务器仍是有必定的时间差的,可是有总比没有好。

咱们能够把上述命令,写到一个批处理文件中,而后在任务计划中进行配置。以下:

clip_image009

clip_image010

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

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

cwRsyncserver目前网络上的免费版本为4.1.0,咱们能够去这个链接下载《cwRsync_server4.1.0下载》。

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

clip_image011

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

cwRsyncServer安装完毕后,咱们就能够在windows的服务中看到rsync服务。以下:

clip_image012

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

rsyncserver安装完毕后,配置文件已经造成。咱们能够在其的安装目录下看到。以下:

clip_image013

咱们如今来修改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

clip_image014

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

clip_image015

注意:同步文件夹建立完毕后,必定要把咱们在前面安装rsyncserver时建立的用户,对该文件夹具备彻底全部权。以下:

clip_image016

同步文件夹建立完毕后,咱们再来建立同步时的密码文件,以下:

clip_image017

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

chmod命令在rsyncserver的bin目录下,咱们能够直接使用。以下:

clip_image018

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

clip_image019

chmod 600 rsyncd.password

clip_image020

以上所有修改并配置完毕后,咱们就能够启动rsyncserver,以下:

clip_image021

如今在Linux机器上检查是否能够正常链接,rsync服务端。以下:

clip_image022

经过上图,咱们能够看到Linux机器是能够正常链接rsync服务端的。

如今咱们开始在rsync客户端进行同步,以下:

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

clip_image023

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

clip_image024

经过上图,能够看到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

clip_image025

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

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

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

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

clip_image026

咱们须要在rsyncd.conf配置文件中加入uid和gid,以下:

clip_image027

而后重启rsyncserver便可。

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

telnet 192.168.199.245 873

clip_image028

客户端建立完毕密码文件后,咱们就能够来同步。以下:

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

clip_image029

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

clip_image030

经过上图,咱们能够看到rsync客户端确实已经把文件同步到rsync服务端上了。

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

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

passwd.txt文件与rsyncd.password文件的内容如出一辙便可。以下:

clip_image031

而后使用以下的同步命令进行同步便可:

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

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

相关文章
相关标签/搜索