說(shuō)明:
1、Rsync服務(wù)端
系統(tǒng):Ubuntu Server 11.10
IP地址:192.168.21.168
數(shù)據(jù)存放目錄:/home/mysql_data
2、cwRsync客戶端
系統(tǒng):Windows Server 2003
IP地址:192.168.21.130
同步的目錄:D:\mysql_data
實(shí)現(xiàn)目的:
cwRsync客戶端每天凌晨3:00鐘自動(dòng)同步Rsync服務(wù)端/home/mysql_data目錄中的數(shù)據(jù)到D:\mysql_data目錄
一、Rsync服務(wù)端配置
1、開(kāi)啟防火墻tcp 873端口(Rsync默認(rèn)端口)
說(shuō)明:Ubuntu默認(rèn)安裝是沒(méi)有開(kāi)啟任何防火墻的,為了服務(wù)器的安全,建議大家安裝啟用防火墻設(shè)置,這里推薦使用iptables防火墻。
whereis iptables #查看系統(tǒng)是否安裝防火墻
iptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz #表示已經(jīng)安裝iptables防火墻
apt-get install iptables #如果默認(rèn)沒(méi)有安裝,請(qǐng)運(yùn)行此命令安裝防火墻
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 #設(shè)置防火墻規(guī)則,添加以下內(nèi)容
##################################################################################################
*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 #使防火墻規(guī)則生效
nano /etc/network/if-pre-up.d/iptables #創(chuàng)建文件,添加以下內(nèi)容,使防火墻開(kāi)機(jī)啟動(dòng)
##########################################################
#!/bin/bash
/sbin/iptables-restore /etc/iptables.default.rules
##########################################################
chmod +x /etc/network/if-pre-up.d/iptables #添加執(zhí)行權(quán)限
2、安裝Rsync服務(wù)端軟件
whereis rsync #查看系統(tǒng)是否已安裝rsync,出現(xiàn)下面的提示,說(shuō)明已經(jīng)安裝
rsync: /usr/bin/rsync /usr/share/man/man1/rsync.1.gz
apt-get install rsync #如果沒(méi)有安裝,請(qǐng)執(zhí)行這行命令來(lái)安裝rsync
nano /etc/default/rsync #編輯配置文件
RSYNC_ENABLE=true #把false改為true,設(shè)置開(kāi)機(jī)啟動(dòng)rsync
ctrl+o #保存
ctrl+x #退出
3、創(chuàng)建rsyncd.conf配置文件
nano /etc/rsyncd.conf #創(chuàng)建配置文件,添加以下代碼
log file = /var/log/rsyncd.log #日志文件位置,啟動(dòng)rsync后自動(dòng)產(chǎn)生這個(gè)文件,無(wú)需提前創(chuàng)建。
[MySQL_Backup] #自定義名稱
path = /home/mysql_data #Rsync服務(wù)端數(shù)據(jù)目錄路徑
comment = MySQL_Backup #模塊名稱與[MySQL_Backup]自定義名稱相同
uid = root #設(shè)置rsync運(yùn)行權(quán)限為root
gid = root #設(shè)置rsync運(yùn)行權(quán)限為root
port=873 #默認(rèn)端口
read only = no #設(shè)置為no,cwRsync客戶端可上傳文件,yes只讀
write only = no #設(shè)置為no,cwRsync客戶端可下載文件,yes不能下載
auth users = mysqlbakuser #執(zhí)行數(shù)據(jù)同步的用戶名,可以設(shè)置多個(gè),用英文狀態(tài)下逗號(hào)隔開(kāi)
secrets file = /etc/rsync.pass #用戶認(rèn)證配置文件,里面保存用戶名稱和密碼,后面會(huì)創(chuàng)建這個(gè)文件
hosts allow = 192.168.21.130 #允許進(jìn)行數(shù)據(jù)同步的客戶端IP地址,可以設(shè)置多個(gè),用英文狀態(tài)下逗號(hào)隔開(kāi)
hosts deny = 192.168.21.254 #禁止數(shù)據(jù)同步的客戶端IP地址,可以設(shè)置多個(gè),用英文狀態(tài)下逗號(hào)隔開(kāi)
list = yes #顯示Rsync服務(wù)端資源列表
ctrl+o #保存
ctrl+x #退出
4、創(chuàng)建用戶認(rèn)證文件
nano /etc/rsync.pass #配置文件,添加以下內(nèi)容
mysqlbakuser:123456 #格式,用戶名:密碼,可以設(shè)置多個(gè),每行一個(gè)用戶名:密碼
ctrl+o #保存
ctrl+x #退出
5、設(shè)置文件權(quán)限
chmod 600 /etc/rsyncd.conf #設(shè)置文件所有者讀取、寫入權(quán)限
chmod 600 /etc/rsync.pass #設(shè)置文件所有者讀取、寫入權(quán)限
6、啟動(dòng)rsync
/etc/init.d/rsync start #啟動(dòng)
service rsync stop #停止
service rsync restart #重新啟動(dòng)
二、cwRsync客戶端設(shè)置
1、下載cwRsync客戶端軟件
下載地址:http://jaist.dl.sourceforge.net/project/sereds/cwRsync/4.0.3/cwRsync_4.0.3_Installer.zip
2、安裝cwRsync客戶端
解壓cwRsync_4.0.3_Installer.zip 雙擊打開(kāi)cwRsync_4.0.3_Installer.exe
Next 下一步
IAgree 同意安裝
Next
默認(rèn)安裝路徑 C:\Program Files\cwRsync
Install 安裝
Close 安裝完成,關(guān)閉
3、測(cè)試是否與Rsync服務(wù)端通信成功
開(kāi)始-運(yùn)行-cmd
輸入cd C:\Program Files\cwRsync\bin 回車
再輸入telnet 192.168.21.168 873 回車
出現(xiàn)下面的界面,說(shuō)明與Rsync服務(wù)端通信成功
備注 C:\Program Files\cwRsync\bin 是指cwRsync程序安裝路徑
4、cwRsync客戶端同步Rsync服務(wù)端的數(shù)據(jù)
開(kāi)始-運(yùn)行-cmd,輸入cd C:\Program Files\cwRsync\bin 回車
再輸入rsync -vzrtopg --progress --delete mysqlbakuser@192.168.21.168::MySQL_Backup /cygdrive/d/mysql_data
輸入密碼:123456 回車
出現(xiàn)下面的界面,說(shuō)明數(shù)據(jù)同步成功
可以打開(kāi)D:\mysql_data 與Rsync服務(wù)端/home/mysql_data目錄中的數(shù)據(jù)對(duì)比一下,查看是否相同
相關(guān)說(shuō)明:
d/mysql_data 代表D:\mysql_data
MySQL_Backup 代表/etc/rsyncd.conf文件中自定義的模塊名稱comment = MySQL_Backup
192.168.21.168 #Rsync服務(wù)端IP地址
mysqlbakuser #執(zhí)行數(shù)據(jù)同步的用戶
-vzrtopg --progress #顯示同步過(guò)程詳細(xì)信息
--delete #從cwRsync客戶端D:\mysql_data目錄中刪除與Rsync服務(wù)端/home/mysql_data目錄中不相同的數(shù)據(jù),即保證兩邊的數(shù)據(jù)完全一致
三、在cwRsync客戶端的任務(wù)計(jì)劃中添加批處理腳本文件,每天凌晨3:00鐘自動(dòng)同步Rsync服務(wù)端/home/mysql_data目錄中的數(shù)據(jù)到D:\mysql_data目錄
1、打開(kāi)C:\Program Files\cwRsync\bin目錄,新建passwd.txt
輸入123456
保存
繼續(xù)在C:\Program Files\cwRsync\bin目錄,新建MySQL_Backup.bat
輸入
@echo off
echo.
echo 開(kāi)始同步數(shù)據(jù),請(qǐng)稍等...
echo.
cd C:\Program Files\cwRsync\bin
rsync -vzrtopg --port=873 --progress --delete mysqlbakuser@192.168.21.168::MySQL_Backup /cygdrive/d/mysql_data passwd.txt
echo.
echo 數(shù)據(jù)同步完成
echo.
最后保存退出
2、添加批處理腳本到Windows任務(wù)計(jì)劃
開(kāi)始-設(shè)置-控制面板-任務(wù)計(jì)劃
打開(kāi)添加任務(wù)計(jì)劃,下一步
瀏覽,選擇打開(kāi)C:\Program Files\cwRsync\bin目錄里面的MySQL_Backup.bat
執(zhí)行這個(gè)任務(wù):選擇每天,下一步
起始時(shí)間:3:00
運(yùn)行這個(gè)任務(wù):每天,下一步
輸入Windows系統(tǒng)管理員的登錄密碼,下一步
完成
擴(kuò)展說(shuō)明:如果要調(diào)整同步的時(shí)間,打開(kāi)任務(wù)計(jì)劃里面的MySQL_Backup
切換到日程安排來(lái)選項(xiàng)設(shè)置,還可以打開(kāi)高級(jí)來(lái)設(shè)置每隔幾分鐘運(yùn)行一次MySQL_Backup.bat這個(gè)腳本
至此,Ubuntu Server Rsync服務(wù)端與Windows cwRsync客戶端實(shí)現(xiàn)數(shù)據(jù)同步完成