1.rsync 簡(jiǎn)介
Rsync(remote synchronize)是一個(gè)遠(yuǎn)程數(shù)據(jù)同步工具,可通過LAN/WAN快速同步多臺(tái)主機(jī)間的文件,也可以使用 Rsync 同步本地硬盤中的不同目錄。
Rsync 是用于取代rcp的一個(gè)工具,Rsync使用所謂的 “Rsync 算法” 來使本地和遠(yuǎn)程兩個(gè)主機(jī)之間的文件達(dá)到同步,這個(gè)算法只傳送兩個(gè)文件的不同部分,而不是每次都整份傳送,因此速度相當(dāng)快。您可以參考 How Rsync Works A Practical Overview 進(jìn)一步了解 rsync 的運(yùn)作機(jī)制。
Rsync支持大多數(shù)的類Unix系統(tǒng),無論是Linux、Solaris還是BSD上都經(jīng)過了良好的測(cè)試。此外,它在windows平臺(tái)下也有相應(yīng)的版本,比較知名的有cwRsync和Sync2NAS。
Rsync 的初始作者是 Andrew Tridgell 和 Paul Mackerras,它當(dāng)前由 http://rsync.維護(hù)。
Rsync的基本特點(diǎn)如下:
1. 可以鏡像保存整個(gè)目錄樹和文件系統(tǒng);
2. 可以很容易做到保持原來文件的權(quán)限、時(shí)間、軟硬鏈接等;
3. 無須特殊權(quán)限即可安裝;
4. 優(yōu)化的流程,文件傳輸效率高;
5. 可以使用rcp、ssh等方式來傳輸文件,當(dāng)然也可以通過直接的socket連接;
6. 支持匿名傳輸,以方便進(jìn)行網(wǎng)站鏡像。
在使用 rsync 進(jìn)行遠(yuǎn)程同步時(shí),可以使用兩種方式:遠(yuǎn)程 Shell 方式(建議使用 ssh,用戶驗(yàn)證由 ssh 負(fù)責(zé))和 C/S 方式(即客戶連接遠(yuǎn)程 rsync 服務(wù)器,用戶驗(yàn)證由 rsync 服務(wù)器負(fù)責(zé))。
無論本地同步目錄還是遠(yuǎn)程同步數(shù)據(jù),首次運(yùn)行時(shí)將會(huì)把全部文件拷貝一次,以后再運(yùn)行時(shí)將只拷貝有變化的文件(對(duì)于新文件)或文件的變化部分(對(duì)于原有文件)。
rsync 在首次復(fù)制時(shí)沒有速度優(yōu)勢(shì),速度不如 tar,因此當(dāng)數(shù)據(jù)量很大時(shí)您可以考慮先使用 tar 進(jìn)行首次復(fù)制,然后再使用 rsync 進(jìn)行數(shù)據(jù)同步。
2.服務(wù)器端安裝rsync服務(wù)
可以通過yum安裝
yum install rsync
也可以通過編譯安裝
rysnc的官方網(wǎng)站:http://rsync.可以從上面得到最新的版本。
注:在用源碼包編譯安裝之前,您得安裝gcc等編譯開具才行
tar xvf rsync-3.0.9.tar.gz
cd rsync-3.0.9
./configure --prefix=/usr
make && make install
3.rsync服務(wù)器的配置文件rsyncd.conf
rsync的主要有以下三個(gè)配置文件:
- rsyncd.conf(主配置文件)
- rsyncd.passwd(密碼文件)
- rsyncd.motd(rysnc服務(wù)器信息)
服務(wù)器配置文件(/etc/rsyncd/rsyncd.conf),該文件默認(rèn)不存在,請(qǐng)創(chuàng)建:
在/etc目錄下創(chuàng)建一個(gè)rsyncd的目錄,我們用來存放rsyncd.conf 、rsyncd.passwd、rsyncd.motd文件
mkdir rsyncd
創(chuàng)建文件
touch rsyncd.conf
touch rsyncd.passwd
touch rsyncd.motd
chmod 600 rsyncd.pwsswd #為了密碼的安全性,我們把權(quán)限設(shè)為600
3.1 配置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
#告訴進(jìn)程寫到 /var/run/rsyncd.pid 文件中
pid file = /var/run/rsyncd.pid
lock file =/var/run/rsyncd.lock
#日志文件
log file =/var/log/rsyncd.log
log format = %t %a %m %f %b
syslog facility = local3
#指定運(yùn)行端口,默認(rèn)是873
port = 8877
#指定服務(wù)器IP地址
address = 192.168.56.102
#服務(wù)器端傳輸文件時(shí),要發(fā)哪個(gè)用戶和用戶組來執(zhí)行,默認(rèn)是nobody
uid = root
gid = root
#如果"use chroot"指定為yes,那么rsync在傳輸文件以前首先chroot到path參數(shù)所指定的目錄下。這樣做的原因是實(shí)現(xiàn)額外的安全防護(hù),但是缺點(diǎn)是需要以root權(quán)限,并且不能備份指向外部的符號(hào)連接所指向的目錄文件。默認(rèn)情況下chroot值為yes
use chroot = no
#客戶端最多連接數(shù)
max connections = 5
motd file = /etc/rsyncd/rsyncd.motd
timeout = 300
#同步模塊
[test_data]
#指定文件目錄所在路徑
path = /home/test
#list 意思是把rsync 服務(wù)器上提供同步數(shù)據(jù)的目錄在服務(wù)器上模塊是否顯示列出來。默認(rèn)是yes 。如果你不想列出來,就no ;如果是no是比較安全的,至少別人不知道你的服務(wù)器上提供了哪些目錄。你自己知道就行了
list=no
#指定在 rsync 服務(wù)器上運(yùn)行 delete 操作時(shí)是否忽略 I/O 錯(cuò)誤。一般來說 rsync 在出現(xiàn) I/O 錯(cuò)誤時(shí)將將跳過 –delete 操作,以防止因?yàn)闀簳r(shí)的資源不足或其它 I/O 錯(cuò)誤導(dǎo)致的嚴(yán)重問題。
ignore errors
#如果為yes,表示只讀本地文件就無法同步到服務(wù)器
read only = no
#允許連接的ip,在演示中使用的云服務(wù)器就直接寫*,表示無限制 如果要規(guī)定ip或者ip段(10.1.4.0/255.255.255.0)需要進(jìn)行其他配置
hosts allow=10.1.4.0/255.255.255.0
#hosts deny=*
#auth users 是必須在服務(wù)器上存在的真實(shí)的系統(tǒng)用戶,如果你想用多個(gè)用戶,那就以,號(hào)隔開
auth users = root
#密碼存在rsyncd.passwd文件里
secrets file = /etc/rsyncd/rsyncd.passwd
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
3.2 配置rsyncd.passwd文件
rsyncd.passwd的內(nèi)容格式用戶名:密碼
root:123456
**注意:
將rsyncd.passwd這個(gè)密碼文件的文件屬性設(shè)為root擁有, 且權(quán)限要設(shè)為600, 否則無法備份成功! 出于安全目的,文件的屬性必需是只有屬主可讀**
3.3 配置rsyncd.motd 文件
rsyncd.motd 文件類似ftp服務(wù)器登錄時(shí),我們所看到的提示信息……,當(dāng)然這在全局定義變量時(shí),并不是必須的,你可以用#號(hào)注掉,或刪除
++++++++++++++++++++++++++++++++++++++++++++++
歡迎使用
++++++++++++++++++++++++++++++++++++++++++++++
4. 啟動(dòng)rsync服務(wù)器
防火墻配置
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8877 -j ACCEPT
啟動(dòng)rsync服務(wù)
rsync --daemon --config=/etc/rsyncd/rsyncd.conf
在rsync服務(wù)器上查看提供了哪些可用的數(shù)據(jù)源。
rsync --list-only root@192.168.56.102::test_data
5.安裝cwRsync客戶端
下載地址:http:///cwrsync/
直接解壓,到bin文件目錄下執(zhí)行
rsync --port=8877 -vzrtopg --progress --delete root@192.168.56.102::test_data /cygdrive/d/data
- –port=8877 #端口
- root #執(zhí)行數(shù)據(jù)同步的用戶
- 192.168.56.102 #服務(wù)器地址
- test_data #模塊名稱
- –delete #從cwRsync客戶端D:\data目錄中刪除與Rsync服務(wù)端/home/test目錄中不相同的數(shù)據(jù),即保證兩邊的數(shù)據(jù)完全一致
- /cygdrive/d/data 表示本地的同步文件夾/d/data 為同步文件夾
6. 定時(shí)同步文件
在cwRsync客戶端的任務(wù)計(jì)劃中添加批處理腳本文件,每天凌晨02:30鐘自動(dòng)同步Rsync服務(wù)端/data/share目錄中的數(shù)據(jù)到D:\data目錄:
cwrsync的bin目錄新建passwd.txt輸入密碼然后保存
繼續(xù)在bin目錄新建samba.bat輸入
@echo off
echo.
echo 開始同步數(shù)據(jù),請(qǐng)稍等...
echo.
cd C:\Program Files\cwRsync\bin
rsync --port=8877 -vzrtopg --progress --delete root@192.168.56.102::test_data /cygdrive/d/data < passwd.txt
echo.
echo 數(shù)據(jù)同步完成
echo.
添加批處理腳本到Windows任務(wù)計(jì)劃
開始-設(shè)置-控制面板-任務(wù)計(jì)劃
打開添加任務(wù)計(jì)劃,下一步
瀏覽,選擇打開C:\Program Files\cwRsync\bin目錄里面的samba.bat
執(zhí)行這個(gè)任務(wù),選擇每天,下一步
起始時(shí)間:02:30
運(yùn)行這個(gè)任務(wù):每天,下一步
輸入Windows系統(tǒng)管理員的登錄密碼,下一步
完成!
CentOS Rsync服務(wù)端與Windows cwRsync客戶端實(shí)現(xiàn)數(shù)據(jù)同步完成!
|