系統環境:CentOS 6.3 rsync服務器
windows server 2003 R2 cwRsync客戶端
IP地址分別為:10.1.4.44服務器、10.1.4.42客戶端
實現目的:
cwRsync客戶端每天凌晨02:30鐘自動同步Rsync服務端/data/share目錄中的數據到D:\data目錄
所需軟件包:
rsync-3.0.9.tar.gz cwRsync_4.0.5_Installer.zip
一、rsync服務器安裝
rysnc的官方網站:http://rsync.samba.org可以從上面得到最新的版本。目前最新版是3.09。
[root@server ~]# tar xvf rsync-3.0.9.tar.gz
[root@server ~]# cd rsync-3.0.9
[root@server rsync-3.0.9]# ./configure --prefix=/usr
[root@server rsync-3.0.9]# make
[root@server rsync-3.0.9]# make install 注:在用源碼包編譯安裝之前,您得安裝gcc等編譯開具才行
二、 rsync服務器的配置文件rsyncd.conf
rsync的主要有以下三個配置文件:
rsyncd.conf(主配置文件)
rsyncd.secrets(密碼文件)
rsyncd.motd(rysnc服務器信息)
服務器配置文件(/etc/rsyncd/rsyncd.conf),該文件默認不存在,請創建:
[root@server etc]# mkdir rsyncd 注:在/etc目錄下創建一個rsyncd的目錄,我們用來存放rsyncd.conf 、rsyncd.secrets、rsyncd.mond文件
[root@server rsyncd]# touch rsyncd.conf 注:創建rsyncd.conf ,這是rsync服務器的配置文件
[root@server rsyncd]# touch rsyncd.secrets 注:創建rsyncd.secrets ,這是用戶密碼文件
[root@server rsyncd]# chmod 600 rsyncd.secrets 注:為了密碼的安全性,我們把權限設為600
[root@server rsyncd]# ls -lh rsyncd.secrets
-rw------- 1 root root 12 9月 14 11:56 rsyncd.secrets
[root@server rsyncd]# touch rsyncd.motd
[root@server rsyncd]# ll
總用量 12
-rw-r--r-- 1 root root 643 9月 14 11:55 rsyncd.conf
-rw-r--r-- 1 root root 172 9月 14 11:58 rsyncd.motd
-rw------- 1 root root 12 9月 14 11:56 rsyncd.secrets
配置編輯: rsyncd.conf 、rsyncd.secrets 、rsyncd.motd 文件;
1、配置rsyncd.conf文件
rsyncd.conf 是rsync服務器主要配置文件,我們來個簡單的示例:
備份服務器上的/data/share目錄下所有文件,手動添加內容如下:
[root@server ~]# vim /etc/rsyncd/rsyncd.conf
# Distributed under the terms of the GNU General Public License v2
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid 注:告訴進程寫到 /var/run/rsyncd.pid 文件中
port = 873 注:指定運行端口,默認是873,您可以自己指定
address = 10.1.4.44 注:指定服務器IP地址
#uid = nobody 注:服務器端傳輸文件時,要發哪個用戶和用戶組來執行,默認是nobody
#gid = nobody 注:服務器端傳輸文件時,要發哪個用戶和用戶組來執行,默認是nobody
uid = root
gid = root
use chroot = yes
read only = yes
#limit access to private LANs
hosts allow=10.1.4.0/255.255.255.0
hosts deny=*
max connections = 5 注:客戶端最多連接數
motd file = /etc/rsyncd/rsyncd.motd
#This will give you a separate log file
#log file = /var/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync
#transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[samba_data] 注:模塊
path = /data/share 注:指定文件目錄所在路徑
list=no 注:list 意思是把rsync 服務器上提供同步數據的目錄在服務器上模塊是否顯示列出來。默認是yes 。如果你不想列出來,就no ;如果是no是比較安全的,至少別人不知道你的服務器上提供了哪些目錄。你自己知道就行了
ignore errors 注:忽略IO錯誤,詳細的請查文檔
auth users = root 注:認證用戶是root ,是必須在服務器上存在的用戶
secrets file = /etc/rsyncd/rsyncd.secrets 注:密碼存在rsyncd.secrets文件裡
注:關於 auth users 是必須在服務器上存在的真實的系統用戶,如果你想用多個用戶,那就以,號隔開;比如 auth users = root , user1
2、配置rsyncd.secrets文件
密碼文件:rsyncd.secrets的內容格式
[root@server ~]# vim /etc/rsyncd/rsyncd.secrets
root:111111
user:111111
用戶名:密碼 注:root:111111
而我們在例子中rsyncd.secrets的內容如下類似的;在文檔中說,有些系統不支持長密碼,自己嘗試著設置一下吧。另外 rsyncd.secrets文件權限對其它用戶組是不可讀的。如果你設置錯了,可能rsync不工作。
注意:
1、將rsyncd.secrets這個密碼文件的文件屬性設為root擁有, 且權限要設為600, 否則無法備份成功! 出於安全目的,文件的屬性必需是只有屬主可讀。
#chown root.root rsyncd.secrets #修改屬主
#chmod 600 rsyncd.secrets #修改權限
2、這裡的密碼值得注意,為了安全,你不能把系統用戶的密碼寫在這裡。比如你的系統用戶root 密碼是 abcdefg ,為了安全,你可以讓rsync 中的root 為111111 。這和samba的用戶認證的密碼原理是差不多的;
3、配置rsyncd.motd 文件
它是定義rysnc 服務器信息的,也就是用戶登錄信息。比如讓用戶知道這個服務器是誰提供的等;類似ftp服務器登錄時,我們所看到的提示信息……。當然這在全局定義變量時,並不是必須的,你可以用#號注掉,或刪除;我在這裡寫了一個 rsyncd.motd的內容為:
[root@server ~]# vim /etc/rsyncd/rsyncd.motd
++++++++++++++++++++++++++++++++++++++++++++++
Welcome to use the mike.org.cn rsync services!
2002------2012
++++++++++++++++++++++++++++++++++++++++++++++
三、啟動rsync 服務器及防火牆的設置
1、啟動rsync服務器
啟動rsync 服務器相當簡單,–daemon 是讓rsync 以服務器模式運行;
[root@server ~]#/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
注: 如果你找不到rsync 命令,你應該知道rsync 是安裝在哪了。比如rsync 可執行命令可能安裝在了 /usr/local/bin目錄;也就是如下的命令;
[root@server ~]#/usr/local/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
當然您也可以寫一個腳本來開機自動啟動rysnc 服務器,你自己查查文檔試試,這個簡單。因為我用slackware 也有一個類似的腳本。我感覺不如直接手工運行方面,或者把這個命令寫入rc.local文件中,這樣也一樣能自動運行;
[root@server ~]# netstat -anp |grep :873
tcp 0 0 10.1.4.44:873 0.0.0.0:* LISTEN 5696/rsync
2 、rsync服務器和防火牆
Linux 防火牆是用iptables,所以我們至少在服務器端要讓你所定義的rsync 服務器端口通過,客戶端上也應該讓通過。
[root@server ~]#iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
[root@server ~]#iptables -L 查看一下防火牆是不是打開了 873端口;
3 、在rsync 服務器上的所提供的同步內容
在rsync服務器上查看提供了哪些可用的數據源。
[root@server ~]# rsync --list-only [email protected]::samba_data
++++++++++++++++++++++++++++++++++++++++++++++
Welcome to use the mike.org.cn rsync services!
2002------2012
++++++++++++++++++++++++++++++++++++++++++++++
Password:
drwxr-xr-x 4096 2012/09/14 12:04:57 .
drwxrwxrwx 4096 2012/09/14 12:04:57 caiwu
drwxrwxrwx 4096 2012/09/14 12:24:54 jishu
drwxrwxrwx 4096 2012/09/14 12:22:11 public
drwxrwxrwx 4096 2012/09/14 12:04:57 yanfa
注: 前面是rsync 所提供的數據源,也就是我們在rsyncd.conf 中所寫的[samba_data]模塊。而“linuxsir home data”是由[samba_data]模塊中的 comment = root home 提供的;為什麼[samba_data] 數據源列出來呢?因為我們在[samba_data]中已經把list=yes。
四、通過cwRsync客戶端安裝來同步數據
1、下載cwRsync客戶端軟件
下載地址:
http://jaist.dl.sourceforge.net/project/sereds/cwRsync/4.0.5/cwRsync_4.0.5_Installer.zip
2、安裝cwRsync客戶端
解壓cwRsync_4.0.5_Installer.zip 雙擊打開cwRsync_4.0.5_Installer.exe
Next 下一步
I Agree 同意安裝
Next
默認安裝路徑 C:\Program Files\cwRsync
Install 安裝
Close 安裝完成,關閉
3、測試是否與Rsync服務端通信成功
開始-運行-cmd
輸入cd C:\Program Files\cwRsync\bin 回車
再輸入telnet 10.1.4.44 873 回車
出現telnet界面,說明與Rsync服務端通信成功
備注 C:\Program Files\cwRsync\bin 是指cwRsync程序安裝路徑
4、cwRsync客戶端同步Rsync服務端的數據
在D盤創建一個文件夾為:data
開始-運行-cmd,輸入cd C:\Program Files\cwRsync\bin 回車
再輸入
C:\Program Files\cwRsync\bin>rsync --port=873 -vzrtopg --progress --delete [email protected]::samba_data /cygdrive/d/data
輸入密碼:111111 #回車
開始同步數據,等待執行完成,可以打開D:\data 與Rsync服務端/data/share目錄中的數據對比一下,查看是否相同
說明:
d/data 代表D:\data
samba_data 代表/etc/rsyncd/rsyncd.conf文件中自定義的模塊名稱comment = samba_data
10.1.4.44 #Rsync服務端IP地址
yanghw #執行數據同步的用戶
--port=873 #端口
-vzrtopg --progress #顯示同步過程詳細信息
--delete #從cwRsync客戶端D:\data目錄中刪除與Rsync服務端/data/share目錄中不相同的數據,即保證兩邊的數據完全一致
5、在cwRsync客戶端的任務計劃中添加批處理腳本文件,每天凌晨02:30鐘自動同步Rsync服務端/data/share目錄中的數據到D:\data目錄:
打開C:\Program Files\cwRsync\bin目錄新建passwd.txt
輸入111111
保存
繼續在C:\Program Filesc\wRsync\bin目錄新建samba.bat
輸入
@echo off
echo.
echo 開始同步數據,請稍等...
echo.
cd C:\Program Files\cwRsync\bin
rsync --port=873 -vzrtopg --progress --delete [email protected]::samba_data /cygdrive/d/data < passwd.txt
echo.
echo 數據同步完成
echo.
最後保存退出
6、添加批處理腳本到Windows任務計劃
開始-設置-控制面板-任務計劃
打開添加任務計劃,下一步
浏覽,選擇打開C:\Program Files\cwRsync\bin目錄裡面的samba.bat
執行這個任務,選擇每天,下一步
起始時間:02:30
運行這個任務:每天,下一步
輸入Windows系統管理員的登錄密碼,下一步
完成!
CentOS Rsync服務端與Windows cwRsync客戶端實現數據同步完成!
本文出自 “運維工作奮斗” 博客,請務必保留此出處http://yanghuawu.blog.51cto.com/2638960/1020297