一、rsync +cwrsync實現windows和linux的檔案同步
Rsync(remote synchronize)是一個遠端資料同步工具,可通過LAN/WAN快速同步多臺主機間的檔案,也可以使用 Rsync 同步本地硬碟中的不同目錄。
一、Linux伺服器端安裝rsync服務
1、可以通過yum安裝:
yum -y install rsync
#啟動rsync服務
systemctl start rsyncd.service
systemctl enable rsyncd.service
#檢查是否已經成功啟動
netstat -lnp|grep 873
2、rsync伺服器的配置檔案rsyncd.conf (/etc/rsyncd/rsyncd.conf):
rsync的主要有以下三個配置檔案:
- rsyncd.conf(主配置檔案)
- rsyncd.passwd(密碼檔案)
- rsyncd.motd(rysnc伺服器資訊)
3、在/etc目錄下建立一個rsyncd的目錄,用來存放rsyncd.passwd檔案
mkdir rsyncd
touch rsyncd.passwd
chmod 600 rsyncd.pwsswd #為了密碼的安全性,我們把許可權設為600
配置rsyncd.passwd檔案:
rsyncd.passwd的內容格式為 使用者名稱:密碼
root:123456
**注意:
將rsyncd.passwd這個密碼檔案的檔案屬性設為root擁有, 且許可權要設為600, 否則無法備份成功! 出於安全目的,檔案的屬性必需是隻有屬主可讀**
4、配置rsyncd.conf檔案:
# /etc/rsyncd: configuration file for rsync daemon mode # See rsyncd.conf man page for more options. # configuration example: # uid = nobody # gid = nobody # use chroot = yes # max connections = 4 # pid file = /var/run/rsyncd.pid # exclude = lost+found/ # transfer logging = yes # timeout = 900 # ignore nonreadable = yes # dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 #伺服器端傳輸檔案時,要發哪個使用者和使用者組來執行,預設是nobody uid = root gid = root #如果"use chroot"指定為yes,那麼rsync在傳輸檔案以前首先chroot到path引數所指定的目錄下。這樣做的原因是實現額外的安全防護,但是缺點是需要以root許可權,並且不能備份指向外部的符號連線所指向的目錄檔案。預設情況下chroot值為yes use chroot = no #客戶端最多連線數 max connections = 4 #指定執行埠,預設是873 #port = 8877 #指定伺服器IP地址 #address = 192.168.56.102 # CentOS7中yum安裝不需指定pid file 否則報錯 # pid file = /var/run/rsyncd.pid lock file =/var/run/rsyncd.lock #日誌檔案 log file = /var/log/rsyncd.log # //此檔案定義完成後系統會自動建立 exclude = lost+found/ transfer logging = yes timeout = 900 ignore nonreadable = yes dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 #同步模組 [test_data] #指定檔案目錄所在路徑 path = /opt/leasing #list 意思是把rsync 伺服器上提供同步資料的目錄在伺服器上模組是否顯示列出來。預設是yes 。如果你不想列出來,就no ;如果是no是比較安全的,至少別人不知道你的伺服器上提供了哪些目錄。你自己知道就行了 list=no #指定在 rsync 伺服器上執行 delete 操作時是否忽略 I/O 錯誤。一般來說 rsync 在出現 I/O 錯誤時將將跳過 –delete 操作,以防止因為暫時的資源不足或其它 I/O 錯誤導致的嚴重問題。 ignore errors #如果為yes,表示只讀本地檔案就無法同步到伺服器 read noly = no #允許連線的ip,在演示中使用的雲伺服器就直接寫*,表示無限制 如果要規定ip(192.168.10.223)或者ip段(10.1.4.0/255.255.255.0)需要進行其他配置 hosts allow=* #auth users 是必須在伺服器上存在的真實的系統使用者,如果你想用多個使用者,那就以,號隔開 auth users = root #密碼存在rsyncd.passwd檔案裡 secrets file=/etc/rsyncd/rsyncd.passwd # [ftp] # path = /home/ftp # comment = ftp export area
5、配置rsyncd.motd 檔案(似乎也不是必須的)
rsyncd.motd 檔案類似ftp伺服器登入時,我們所看到的提示資訊……,當然這在全域性定義變數時,並不是必須的,你可以用#號注掉,或刪除
++++++++++++++++++++++++++++++++++++++++++++++
歡迎使用
++++++++++++++++++++++++++++++++++++++++++++++
---------------------
6、重啟:
systemctl restart rsyncd.service
二、windows安裝cwRsync客戶端
1、下載服務端安裝檔案 http://www.jb51.net/softs/55933.html
2、cwRsync客戶端不需要很複雜的配置,配置Windows的環境變數PATH:E:\cwRsync\Install\bin
3、在windows本地新建一個要同步的目錄rsync_data作為同步資料的目錄(名字自定義)
4、在E:\cwRsync目錄下建立一個記錄密碼的檔案rsync.passwd 內容即密碼: 123456
5、寫一個bat批處理檔案,另存為 ANSI 格式的bat(不然會亂碼):rsync_start.bat
@echo off
echo 開始同步伺服器/opt/leasing/資料到本地rsync_data目錄下
cd E:\cwRsync\Install\bin
rsync.exe --port=873 -avzP --delete --password-file=/cygdrive/e/cwRsync/rsync.passwd [email protected]::test_data/ /cygdrive/E/cwRsync/rsync_data
echo 同步完成
pause
#–port=873 #埠
#--password-file 密碼檔案
#root #執行資料同步的使用者
#106.14.69.110 #伺服器地址
#test_data #模組名稱
#--delete #從cwRsync客戶端E:\cwRsync\rsync_data目錄中刪除與Rsync服務端/opt/leasing目錄中不相同的資料,即保證兩邊的資料完全一致
#/cygdrive/E/cwRsync/rsync_data 表示本地的同步資料夾E盤:E:/cwRsync/rsync_data 為同步資料夾
由於rsync始終是Linux下的東西,所以在設定win的儲存目錄的時候,必須/cygdrive帶頭後面跟碟符及目錄
執行rsync_start.bat即可。
三、可新增批處理指令碼到Windows任務計劃,實現自動同步資料
四、Windows同步到linux: https://www.linuxidc.com/Linux/2012-09/71333.htm