window系統的Rsync同步實戰分析第2/2頁
2024-09-10 00:01:28
供稿:網友
Rsync是一個遠程數據同步工具,可通過LAN/WAN快速同步多臺主機間的文件。Rsync本來是用以取代rcp的一個工具,它當前由 rsync.samba.org維護。
對應于以上六種命令格式,rsync有六種不同的工作模式:
1)拷貝本地文件。當SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啟動這種工作模式。
2)使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號":"分隔符時啟動該模式。
3)使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號":"分隔符時啟動該模式。
4)從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啟動該模式。
5)從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含"::"分隔符時啟動該模式。
6)列遠程機的文件列表。這類似于rsync傳輸,不過只要在命令中省略掉本地機信息即可。
主服務器
IP 192.168.0.100
F:/data/www
備份服務器
IP 192.168.0.101
F:/data/www
實戰:
1、http://rsync.samba.org/ 下載cwRsync客戶端(cwRsync)和服務器端(cwRsyncServer)。
2、服務器端安裝:采用默認選項安裝。
安裝后,服務默認為手動啟動模式,到“管理工具/服務管理”里,啟動“RsyncServer”服務,并修改“RsyncServer”為自動啟動模式。
1、http://rsync.samba.org/ 下載cwRsync客戶端(cwRsync)和服務器端(cwRsyncServer)。
安裝的過程很簡單,也很順利,從 cwRsync 網站上下載的 server and client ,都安裝了一下,不過后來發現,其實是不需要安裝 client 的,只要 server 就可以了,server 包括了 client 的功能。安裝完 server 后,會在 service 中增加 Rsync 和 ssh 服務。
服務器端安裝:采用默認選項安裝。
安裝后,服務默認為手動啟動模式,到“管理工具/服務管理”里,啟動“RsyncServer”服務,并修改“RsyncServer”為自動啟動模式
2、配置主服務器
配置了一下 rsyncd.conf
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
pid file = rsyncd.pid
# Module definitions
# Remember cygwin naming conventions : c:/work becomes /cygwin/c/work
#
[test]
path = /cygdrive/c/work
read only = false
transfer logging = yes
只是將 [test] 中的 path 改成了我本機的備份目錄
[www]
path = /cygdrive/F/data/www
read only = false
transfer logging = yes
3、備分服務器數據同步
因為只是最簡單的數據同步,所以就不使用 ssh 了,直接啟動 rsync 服務就可以了。然后按照 usage 上面教的。
rsync -av /cygdrive/F/data/www 192.168.0.100::www
完成了數據的同步工作,一切順利。順便說一下,/cygdrive/d 是安裝完 cwRsync ,會自動將系統上所有的盤 mount 成 /cygdrive/x ,x 表示盤符,小寫的,并把安裝目錄 mount 成 / 了。
這樣我們實現了從主服務器到備分服務器的數據同步
下一步我們結合windows的任務調度來實現這個批處理文件,取名為XXX.cmd
rsync -avr --ignore-errors --force 192.168.0.100::www /cygdrive/F/data
test.bat
---------------------------------------------------------------------------------------------
@echo off set path=%path%;C:/Program Files/cwRsyncServer/bin; date /t >> F:/syn.txt time /t >> F:/syn.txt rsync -avr --ignore-errors --force --exclude="/tmp/" --delete 192.168.0.103::test /cygdrive/F/temp >> F:/syn.txt date /t >> F:/syn.txt time /t >> F:/syn.txt echo . echo . echo . remote synchronous over echo . echo .