Centos 6.3 x86_64配置rsync

 Centos 6.3 x86_64配置rsync

一,rsync簡介
Rsync採用“rsync算法”使用一個客戶機和遠程文件服務器之間的文件同步。通過rsync可以將同一個服務器的數據從一個分區備份到另一個分區,也可以將本地的系統的數據通過網絡傳輸方式備份到任何一個遠程主機上,rsync可以在中斷之後恢復傳輸,rsync只傳輸源文件與目標文件之間不一致的部分。
1,加密傳輸數據,保證了數據的安全性
2,可以保持原來文件的權限,時間等屬性。
3,可以使用rcp、ssh等方式來傳輸文件,當然也可以直接通過socket連接傳輸文件
4,支持匿名傳輸
5,可以鏡像保存整個目錄樹和文件系統
6,可以增量同步數據,文件傳輸效率高,因而同步時間很短。
二,rsync的四種模式
1,本地shell模式:主要用於複製。
# rsync -av bacula-5.2.13  /tmp/
bacula-5.2.13/updatedb/update_postgresql_tables_7_to_8
bacula-5.2.13/updatedb/update_postgresql_tables_8_to_9
bacula-5.2.13/updatedb/update_postgresql_tables_9_to_10
bacula-5.2.13/updatedb/update_postgresql_tables_9_to_10.in
bacula-5.2.13/updatedb/update_sqlite3_tables_10_to_11
bacula-5.2.13/updatedb/update_sqlite3_tables_10_to_11.in
bacula-5.2.13/updatedb/update_sqlite3_tables_11_to_12
bacula-5.2.13/updatedb/update_sqlite3_tables_11_to_12.in
bacula-5.2.13/updatedb/update_sqlite3_tables_12_to_14
# rsync -av bacula-5.2.13/ /tmp/
platforms/freebsd/
platforms/freebsd/Makefile.in
platforms/freebsd/bacula-dir.in
platforms/freebsd/bacula-fd.in
platforms/freebsd/bacula-sd.in
platforms/freebsd/pthreads-fix.txt
platforms/freebsd/tapetest.c
 上面兩個命令的差異,源參數末尾的斜槓,如果源參數的末尾沒有斜槓,就將指定的源目錄複製到指定的目的目錄,如果源參數末尾有斜槓,就會複製指定源目錄中的內容到目的目錄中,而不是複製目錄本身。
2,遠程shell模式
# rsync -av bacula-5.2.13  192.168.1.29:test
如果沒指定用戶執行些命令,默認是以當前用戶執行些命令,需要輸入192.168.1.29的root密碼。完成密碼驗證後,會在遠程主機的root的用戶根目錄下創建test目錄,然後將bacula目錄及該目錄下的內容複製過來。
3,rsync列表模式
在這個模式下,rsync與ls命令有些相似。以root用戶身份查看遠程主機192.168.1.29的test目錄下的內容:
#rsync -a 192.168.1.29:test
查看本地
#rsync -a  /tmp
4,c/s模式
在這種模式下,rsync在後臺啓用一個守護進程,這個守護進程在服務器永久運行,用於接收文件傳輸請求,因此,客戶端既可以把文件發送給守護進程,也可以向守護進程請求文件。此種模式適合作爲異地的中心備份服務器或數據異地存儲。
三,遠程容災備份系統
A:服務端是web服務器,網站數據每天都會增加。需要對數據進程一個備份。IP:192.168.1.28
B:作爲備份機。IP 192.168.1.29
1,在兩臺機器上都安裝rsync,在6.3的系統已經默認安裝了。如果沒安裝可以自己源碼編譯或yum -y install rsync
2,在A上配置rsync的配置文件,默認沒有配置文件,需要自己建立
Rsyncd.conf文件由一個或多個模塊結構組成,相應地,包括全局參數和模塊參數,一個模塊定義從方括號中的模塊名開始,直到下個模塊的定義開始。模塊主要是定義服務器哪個目錄要被同步。每個模塊都要以[name]形式。這個名字就是在rsync 客戶端看到的名字,其實有點象Samba服務器提供的共享名。而服務器真正同步的數據是通過 path 來指定的。我們可以根據自己的需要,來指定多個模塊。每個模塊要指定認證用戶,密碼文件、但排除並不是必須的;
3,在A上創建配置文件
#vim /etc/rsyncd.conf
uid=nobody   
gid=nobody
port = 873
use chroot=no
max connections=10 #客戶端最多連接數,默認是0,無限制
strict modes=yes #檢查
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
log file=/var/log/rsyncd.log
[backup]     #定義模塊
path=/data    #指定需要備份的文件或目錄
comment=backup file #註釋可以自己定義,寫什麼都行,寫點相關的內容就行
ignore errors #忽略IO錯誤,詳細的請查文檔
read only=no
write only=no
hosts allow =*
hosts deny=192.168.1.200           #禁止此IP連接,也可以寫網段。
list=false
uid=root
gid=root
auth users=backup #認證用戶
secrets file=/etc/server.pass #密碼存在哪個文件;裏面是用“戶名:密碼”格式的文件
exclude =   test/   samba/  #排除/data目錄下test和samba目錄。
4,在A上創建密碼文件
#vim /etc/server.pass
backup:123456
#chmod 600 /etc/server.pass
5,啓動服務
#rsync -daemon
開機啓動
#echo “rsync -daemon” >> /etc/rc.local
7,在B上創建密碼文件
#vim /etc/sever.pass
123456
#chmod /etc/server.pass
8,在B上執行
#rsync -avzP --delete [email protected]::backup /test --password-file=/etc/server.pass
--delete指定以rsync服務端爲基準進行數據鏡像同步,也就是要保持服務端與客戶端目錄的完全一到處。

[email protected]::backup 表示對backup模塊進行備份,前面的backup表示用戶,使用這個用戶對該模塊進行備份。

9,設置定時備份策略
30 3 * * * rsync -avzP --delete [email protected]::backup /test --password-file=/etc/server.pass
到此結束
Rsync優點:定期備份實時性不高的數據。一般文件服務器數據
缺點:如果文件數據過大時,掃描所有文件後進行對比,非常耗時。有時發生變化的文件往往是很少的一部分。因此rsync是非常低效的,其次不能實時監測,同步數據。爲了解決這個問題出現rsync+inotify組合,下一篇講解rsync+inotify。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章