說明:
1、Rsync服務端
系統:Ubuntu Server 11.10
IP地址:192.168.21.168
資料存放目錄:/home/mysql_data
2、cwRsync用戶端
系統:Windows Server 2003
IP地址:192.168.21.130
同步的目錄:D:\mysql_data
實現目的:
cwRsync用戶端每天淩晨3:00鐘自動同步Rsync服務端/home/mysql_data目錄中的資料到D:\mysql_data目錄
一、Rsync服務端配置
1、開啟防火牆tcp 873連接埠(Rsync預設連接埠)
說明:Ubuntu預設安裝是沒有開啟任何防火牆的,為了伺服器的安全,建議大家安裝啟用防火牆設定,這裡推薦使用iptables防火牆。
whereis iptables #查看系統是否安裝防火牆
iptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz #表示已經安裝iptables防火牆
apt-get install iptables #如果預設沒有安裝,請運行此命令安裝防火牆
iptables -L #查看防火牆配置資訊,顯示如下:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
nano /etc/iptables.default.rules #設定防火牆規則,添加以下內容
##################################################################################################
*filter
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound traffic
# You could modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and MySQLconnections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp --dport 873 -j ACCEPT
# Allows SSH connections for script kiddies
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
# Now you should read up on iptables rules and consider whether ssh access
# for everyone is really desired. Most likely you will only allow access from certain IPs.
# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# log iptables denied calls (access via 'dmesg' command)
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
# Reject all other inbound - default deny unless explicitly allowed policy:
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT
##################################################################################################
ctrl+o #儲存
ctrl+x #退出
備忘:873是Rsync連接埠
iptables-restore < /etc/iptables.default.rules #使防火牆規則生效
nano /etc/network/if-pre-up.d/iptables #建立檔案,添加以下內容,使防火牆開機啟動
##########################################################
#!/bin/bash
/sbin/iptables-restore </etc/iptables.default.rules
##########################################################
chmod +x /etc/network/if-pre-up.d/iptables #添加執行許可權
2、安裝Rsync服務端軟體
whereis rsync #查看系統是否已安裝rsync,出現下面的提示,說明已經安裝
rsync: /usr/bin/rsync /usr/share/man/man1/rsync.1.gz
apt-get install rsync #如果沒有安裝,請執行這行命令來安裝rsync
nano /etc/default/rsync #編輯設定檔
RSYNC_ENABLE=true #把false改為true,設定開機啟動rsync
ctrl+o #儲存
ctrl+x #退出
3、建立rsyncd.conf設定檔
nano /etc/rsyncd.conf #建立設定檔,添加以下代碼
log file = /var/log/rsyncd.log #記錄檔位置,啟動rsync後自動產生這個檔案,無需提前建立。
[MySQL_Backup] #自訂名稱
path = /home/mysql_data #Rsync服務端資料目錄路徑
comment = MySQL_Backup #模組名稱與[MySQL_Backup]自訂名稱相同
uid = root #設定rsync運行許可權為root
gid = root #設定rsync運行許可權為root
port=873 #預設連接埠
read only = no #設定為no,cwRsync用戶端可上傳檔案,yes唯讀
write only = no #設定為no,cwRsync用戶端可下載檔案,yes不能下載
auth users = mysqlbakuser #執行資料同步的使用者名稱,可以設定多個,用英文狀態下逗號隔開
secrets file = /etc/rsync.pass #使用者認證設定檔,裡面儲存使用者名稱稱和密碼,後面會建立這個檔案
hosts allow = 192.168.21.130 #允許進行資料同步的用戶端IP地址,可以設定多個,用英文狀態下逗號隔開
hosts deny = 192.168.21.254 #禁止資料同步的用戶端IP地址,可以設定多個,用英文狀態下逗號隔開
list = yes #顯示Rsync服務端資源清單
ctrl+o #儲存
ctrl+x #退出
4、建立使用者認證檔案
nano /etc/rsync.pass #設定檔,添加以下內容
mysqlbakuser:123456 #格式,使用者名稱:密碼,可以設定多個,每行一個使用者名稱:密碼
ctrl+o #儲存
ctrl+x #退出
5、設定檔案許可權
chmod 600 /etc/rsyncd.conf #設定檔案所有者讀取、寫入許可權
chmod 600 /etc/rsync.pass #設定檔案所有者讀取、寫入許可權
6、啟動rsync
/etc/init.d/rsync start #啟動
service rsync stop #停止
service rsync restart #重新啟動
二、cwRsync用戶端設定
1、下載cwRsync用戶端軟體
下載地址:http://s.jb51.net
2、安裝cwRsync用戶端
解壓cwRsync_4.0.3_Installer.zip 雙擊開啟cwRsync_4.0.3_Installer.exe
Next 下一步
IAgree 同意安裝
Next
預設安裝路徑 C:\Program Files\cwRsync
Install 安裝
Close 安裝完成,關閉
3、測試是否與Rsync服務端通訊成功
開始-運行-cmd
輸入cd C:\Program Files\cwRsync\bin 斷行符號
再輸入telnet 192.168.21.168 873 斷行符號
出現下面的介面,說明與Rsync服務端通訊成功
備忘 C:\Program Files\cwRsync\bin 是指cwRsync程式安裝路徑
4、cwRsync用戶端同步Rsync服務端的資料
開始-運行-cmd,輸入cd C:\Program Files\cwRsync\bin 斷行符號
再輸入rsync -vzrtopg --progress --delete [email protected]::MySQL_Backup /cygdrive/d/mysql_data
輸入密碼:123456 斷行符號
出現下面的介面,說明資料同步成功
可以開啟D:\mysql_data 與Rsync服務端/home/mysql_data目錄中的資料對比一下,查看是否相同
相關說明:
d/mysql_data 代表D:\mysql_data
MySQL_Backup 代表/etc/rsyncd.conf檔案中自訂的模組名稱comment = MySQL_Backup
192.168.21.168 #Rsync服務端IP地址
mysqlbakuser #執行資料同步的使用者
-vzrtopg --progress #顯示同步過程詳細資料
--delete #從cwRsync用戶端D:\mysql_data目錄中刪除與Rsync服務端/home/mysql_data目錄中不相同的資料,即保證兩邊的資料完全一致
三、在cwRsync用戶端的任務計劃中添加批處理指令檔,每天淩晨3:00鐘自動同步Rsync服務端/home/mysql_data目錄中的資料到D:\mysql_data目錄
1、開啟C:\Program Files\cwRsync\bin目錄,建立passwd.txt
輸入123456
儲存
繼續在C:\Program Files\cwRsync\bin目錄,建立MySQL_Backup.bat
輸入
@echo off
echo.
echo 開始同步資料,請稍等...
echo.
cd C:\Program Files\cwRsync\bin
rsync -vzrtopg --port=873 --progress --delete [email protected]::MySQL_Backup /cygdrive/d/mysql_data < passwd.txt
echo.
echo 資料同步完成
echo.
最後儲存退出
2、添加批處理指令碼到Windows任務計劃
開始-設定-控制台-任務計劃
開啟新增工作計劃,下一步
瀏覽,選擇開啟C:\Program Files\cwRsync\bin目錄裡面的MySQL_Backup.bat
執行這個任務:選擇每天,下一步
起始時間:3:00
運行這個任務:每天,下一步
輸入Windows系統管理員的登入密碼,下一步
完成
擴充說明:如果要調整同步的時間,開啟任務計劃裡面的MySQL_Backup
切換到排程來選項設定,還可以開啟進階來設定每隔幾分鐘運行一次MySQL_Backup.bat這個指令碼
至此,Ubuntu Server Rsync服務端與Windows cwRsync用戶端實現資料同步完成