上篇文章中,咱們介紹了有關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,咱們下載解壓後配置下,就能夠正常使用。以下:
注意:圖中的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自帶的任務計劃,讓系統自行進行同步。儘管這個和服務器仍是有必定的時間差的,可是有總比沒有好。
咱們能夠把上述命令,寫到一個批處理文件中,而後在任務計劃中進行配置。以下:
2、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
3、 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系統之間目前還不能實現文件的實時同步,咱們還只能經過任務計劃來實現定時的同步任務。