本文由秀依林楓提供友情贊助,首發(fā)于爛泥行天下。
上篇文章中,我們介紹了有關(guān)Linux系統(tǒng)之間的文件同步,這篇文章我們來介紹下,有關(guān)Linux系統(tǒng)與windows系統(tǒng),以及windows系統(tǒng)與windows系統(tǒng)之間的文件同步。
這篇文章我們需要分三個部分進(jìn)行講解:
1、 windows系統(tǒng)同步文件到Linux系統(tǒng)
2、 Linux系統(tǒng)同步文件到windows系統(tǒng)
3、 windows與windows系統(tǒng)之間的文件同步
一、windows系統(tǒng)同步文件到Linux系統(tǒng)
要使windows系統(tǒng)下的文件同步到Linux系統(tǒng),我們需要安裝rsync的windows客戶端cwRsync。
cwRsync我們可以去下面這個連接進(jìn)行下載:
https://www.itefix.net/cwrsync
當(dāng)然,我們也可以去這個連接下載《cwRsync5.4.1客戶端》。
目前cwRsync的版本是5.4.1,我們下載解壓后配置下,就可以正常使用。如下:

注意:圖中的cwrsync.cmd文件,我們可以雙擊該文件進(jìn)行配置cwRsync,也可以自行進(jìn)行配置。但是通過我的實(shí)際驗(yàn)證該文件不能成功配置cwRsync,所以建議手工進(jìn)行配置。
其實(shí)配置就是把目前cwRsync所在的路徑加入到系統(tǒng)的環(huán)境變量中。
手工配置如下:


通過上圖,我們可以看到rsync客戶端cwRsync已經(jīng)安裝完畢。
注意:windows下的rsync客戶端與Linux下rsync客戶端配置是一樣的,只是在路徑中有不同之處。
下面就開始配置rsync客戶端,創(chuàng)建rsync的密碼文件,如下:

rsync服務(wù)端的配置與《爛泥:linux文件同步之rsync學(xué)習(xí)(一)》這篇文章同一個環(huán)境。
我們現(xiàn)在的要求是把rsync客戶端E:/www文件夾下的文件同步到rsync服務(wù)器上。
rsync服務(wù)器是192.168.199.247,rsync客戶端為192.168.199.245。
rsync服務(wù)器已經(jīng)正常運(yùn)行,相關(guān)配置文件如下:


下面我們的所有操作都是在rsync客戶端上進(jìn)行的,執(zhí)行如下命令:
rsync -avz --delete --PRogress /cygdrive/e/www apache@192.168.199.247::www --passWord-file=/cygdrive/e/rsyncd.password
注意:上述命令行中的/cygdrive/e/表示windows系統(tǒng)的E盤,/cygdrive/e/rsyncd.password表示E盤下的rsyncd.password文件。


通過上圖,我們可以很明顯的看到windows系統(tǒng)的文件已經(jīng)同步到Linux系統(tǒng)上了。
但是這個同步還是有一個缺點(diǎn)的就是不能實(shí)時同步,windows系統(tǒng)不像Linux系統(tǒng)那樣支持inotify。
但是我們可以通過windows自帶的任務(wù)計劃,讓系統(tǒng)自行進(jìn)行同步。盡管這個和服務(wù)器還是有一定的時間差的,但是有總比沒有好。
我們可以把上述命令,寫到一個批處理文件中,然后在任務(wù)計劃中進(jìn)行配置。如下:


二、Linux系統(tǒng)同步文件到windows系統(tǒng)
要把Linux系統(tǒng)文件同步奧windows系統(tǒng),需要我們在windows系統(tǒng)上配置rsync服務(wù)端,即安裝cwRsyncserver。
cwRsyncserver目前網(wǎng)絡(luò)上的免費(fèi)版本為4.1.0,我們可以去這個連接下載《cwRsync_server4.1.0下載》。
cwRsyncServer下載完畢后,進(jìn)行安裝即可。其中有一點(diǎn)需要注意,就是在安裝的過程中,會出現(xiàn)如下的提示:

這個對話框是要你輸入cwRsyncServer在系統(tǒng)中新建用戶的用戶名及密碼。
cwRsyncServer安裝完畢后,我們就可以在windows的服務(wù)中看到rsync服務(wù)。如下:

rsyncserver安裝完畢后,我們現(xiàn)在來配置rsyncserver。windows下rsyncserver的配置和Linux下rsync服務(wù)配置沒有多大的區(qū)別。
rsyncserver安裝完畢后,配置文件已經(jīng)形成。我們可以在其的安裝目錄下看到。如下:

我們現(xiàn)在來修改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修改完畢后,我們來創(chuàng)建www模塊的同步文件夾,如下:

注意:同步文件夾創(chuàng)建完畢后,一定要把我們在前面安裝rsyncserver時創(chuàng)建的用戶,對該文件夾具有完全所有權(quán)。如下:

同步文件夾創(chuàng)建完畢后,我們再來創(chuàng)建同步時的密碼文件,如下:

注意:該文件創(chuàng)建完畢后,一定要使用chmod命令修改其權(quán)限。這個和Linux系統(tǒng)上是一樣的。
chmod命令在rsyncserver的bin目錄下,我們可以直接使用。如下:

如果不使用chmod命令修改的話,回報以下的錯誤信息:

chmod 600 rsyncd.password

以上全部修改并配置完畢后,我們就可以啟動rsyncserver,如下:

現(xiàn)在在Linux機(jī)器上檢查是否可以正常連接,rsync服務(wù)端。如下:

通過上圖,我們可以看到Linux機(jī)器是可以正常連接rsync服務(wù)端的。
現(xiàn)在我們開始在rsync客戶端進(jìn)行同步,如下:
rsync -avz /www/ apache@192.168.199.245::www --password-file=/etc/rsyncd.password

切換到rsync服務(wù)端,查看是否同步過來。如下:

通過上圖,可以看到Linux已經(jīng)把文件同步到windows系統(tǒng)中。
因?yàn)閞sync客戶端是Linux系統(tǒng),所以我們也可以實(shí)時的把Linux系統(tǒng)的文件同步到windows系統(tǒng)上。
同步腳本如下:
#!/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系統(tǒng)之間的文件同步
windows與windows系統(tǒng)之間的文件同步,我們只需要在windows系統(tǒng)上安裝rsync相應(yīng)的客戶端與服務(wù)端即可。
rsync服務(wù)端192.168.199.245,rsync客戶端192.168.199.244。
對于rsync客戶端是windows系統(tǒng)的,我們的rsync服務(wù)端要進(jìn)行一些修改否則會提示出錯。出錯信息如下:

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

然后重啟rsyncserver即可。
rsync客戶端測試rsync服務(wù)端,如下:
telnet 192.168.199.245 873

客戶端創(chuàng)建完畢密碼文件后,我們就可以來同步。如下:
rsync -avz /cygdrive/e/soft apache@192.168.199.245::www --password-file=/cygdrive/e/rsyncd.password

同步完畢后,我們來切換到rsync服務(wù)端查看,如下:

通過上圖,我們可以看到rsync客戶端確實(shí)已經(jīng)把文件同步到rsync服務(wù)端上了。
注意:如果你在同步時,碰到系統(tǒng)一直提示輸入密碼,即使你在rsync同步命令中加入了密碼文件。
這時我們就需要先建立密碼文件rsyncd.password并把密碼也存入到里面,然后在建議一個用于專門存儲密碼的文件passwd.txt。
passwd.txt文件與rsyncd.password文件的內(nèi)容一模一樣即可。如下:

然后使用如下的同步命令進(jìn)行同步即可:
rsync -avz /cygdrive/e/soft apache@192.168.199.245::www --password-file=/cygdrive/e/rsyncd.password < E:/passwd.txt
注意:windows系統(tǒng)與windows系統(tǒng)之間目前還不能實(shí)現(xiàn)文件的實(shí)時同步,我們還只能通過任務(wù)計劃來實(shí)現(xiàn)定時的同步任務(wù)。
新聞熱點(diǎn)
疑難解答
圖片精選