爛泥: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系統之間目前還不能實現文件的實時同步,咱們還只能經過任務計劃來實現定時的同步任務。

相關文章
相關標籤/搜索