歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

CentOS Rsync服務端與Windows cwRsync客戶端實現數據同步

系統環境: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

Copyright © Linux教程網 All Rights Reserved