天天看點

rsync安裝,配置與錯誤解析

一、流程圖

<a href="http://blog.51cto.com/attachment/201301/140941434.jpg" target="_blank"></a>

二、rsync的安裝

 1、解除安裝原來的rsync

   當然在安裝Linux作業系統時,rsync是會被預設安裝好的,如果覺得版本太低的話,可以通過如下步驟将其解除安裝掉

#rmp -qla | grep  rsync  //檢視一下安裝的rsync版本  

#rmp -e --nodeps rsync.2.6.. //解除安裝原來的rsync版本  

2、安裝新版本的rsync(伺服器A和備份伺服器B操作是一樣的)

rsync下載下傳位址如下

<a href="http://rsync.samba.org/">http://rsync.samba.org/</a>

#tar xf rsync-3.0.9.tar.gz  

#cd rsync-3.0.9  

#./configure --prefix=/usr/local/rsync  

#make  

#make install  

3、在服務A(即rsync服務端)下建立配置檔案

#vim /etc/rsyncd.conf //預設是沒有的  

添加如下内容  

uid = nobody 

gid = nobody 

port = 873                  //rsync的端口  

use chroot = no           

max connections = 3          //允許用戶端的最大連接配接數  

strict modes = yes            //是否需要密碼驗證檔案  

注:這裡為yes時,密碼檔案權限要改為600      

pid file = /var/run/rsync.pid    //pid檔案  

lock file = /var/run/rsync.lock   //鎖檔案  

log file = /var/log/rsync.log     // 日志檔案  

[web]   //自定義的子產品,用來用戶端做驗證的

path = /data/               //要備份的目錄  

ignore = errors             //當有一些錯誤時,忽略  

read only = no               //允許用戶端上傳檔案  

hosts allow = 192.168.1.6    //允許該IP的用戶端同步   

hosts deny = *                //不允許  

list = false   

uid = root                     //用于同步的屬主和屬組  

gid = root                       

auth users = centos             //用戶端用來驗證的使用者名  

secrets file = /etc/rsync.pas   //密碼檔案 

4、在用戶端和伺服器端建立密碼檔案

在伺服器端(即伺服器A上)  

#vim /etc/rsync.pas //這個密碼檔案是要和配置檔案中的一緻的。  

  centos:rsync      //其中centos為驗證使用者,rsync為密碼  

#chmod 600 /etc/rsync.pas //修改權限為600  

在用戶端(即伺服器B上)  

  rsync      //此密碼要和服務端相同  

   5、在伺服器端啟動rsync的守護程序

#/usr/local/rsync/bin/rsync --daemon //啟動守護程序  

#ps -ef | grep rsync                //檢視程序是否啟動  

6、同步資料到用戶端

rsync -vzrtopg --progress --delete [email protected]::web --password-file=/etc/rsyncd.secrets /data       //把服務端檔案同步到本地data目錄下  

-v, --verbose 詳細模式輸出  

-q, --quiet 精簡輸出模式  

-r, --recursive 對子目錄以遞歸模式處理  

-p, --perms 保持檔案權限  

-o, --owner 保持檔案屬主資訊       

-g, --group 保持檔案屬組資訊  

--delete 删除那些DST中SRC沒有的檔案  

--progress 顯示備份過程  

-t, --times 保持檔案時間資訊  

7、編寫腳本并建立定時任務讓定時執行備份

#vim /home/bakrsync.sh  

  #!/bin/bash  

  #  

  RSYNC=/usr/local/rsync/bin/rsync  

#chmod +x  /home/bakrsync.sh  

#contab -e  

 01 01 * * * /home/basrsync.sh &amp;  //每天淩晨放在背景自動執行 

配置一:

ignore errors

說明:這個選項最好加上,否則再很多crontab的時候往往發生錯誤你也未可知,因為你不可能天天去看每時每刻去看log,不加上這個出現錯誤的幾率相對會很高,因為任何大點的項目和系統,磁盤IO都是一個瓶頸

Rsync error: 

錯誤一: 

@ERROR: auth failed on module xxxxx 

rsync: connection unexpectedly closed (90 bytes read so far) 

rsync error: error in rsync protocol data stream (code 12) at io.c(150) 

說明:這是因為密碼設定錯了,無法登入成功,檢查一下rsync.pwd,看客服是否比對。還有伺服器端沒啟動rsync 服務也會出現這種情況。

錯誤二: 

password file must not be other-accessible 

continuing without password file 

Password: 

說明:這是因為rsyncd.pwd rsyncd.sec的權限不對,應該設定為600。如:chmod 600 rsyncd.pwd

錯誤三: 

@ERROR: chroot failed 

rsync: connection unexpectedly closed (75 bytes read so far) 

說明:這是因為你在 rsync.conf 中設定的 path 路徑不存在,要建立目錄才能開啟同步

錯誤四: 

rsync: failed to connect to 218.107.243.2: No route to host (113) 

rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9] 

說明:防火牆問題導緻,這個最好先徹底關閉防火牆,排錯的基本法就是這樣,無論是S還是C,還有ignore errors選項問題也會導緻

錯誤五:

@ERROR: access denied to www from unknown (192.168.1.123)

rsync: connection unexpectedly closed (0 bytes received so far) [receiver]

rsync error: error in rsync protocol data stream (code 12) at io.c(359)

說明:此問題很明顯,是配置選項host allow的問題,初學者喜歡一個允許段做成一個配置,然後子產品又是同一個,緻使導緻

錯誤六:

rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(244) [generator=2.6.9]

rsync error: received SIGUSR1 (code 19) at main.c(1182) [receiver=2.6.9]

說明:導緻此問題多半是服務端服務沒有被正常啟動,到伺服器上去查查服務是否有啟動,然後檢視下 /var/run/rsync.pid 檔案是否存在,最幹脆的方法是殺死已經啟動了服務,然後再次啟動服務或者讓腳本加入系統啟動服務級别然後shutdown -r now伺服器

錯誤七:

rsync: read error: Connection reset by peer (104)

rsync error: error in rsync protocol data stream (code 12) at io.c(604) [sender=2.6.9]

說明:原資料目錄裡沒有資料存在

本文轉自  沐木小布丁  51CTO部落格,原文連結:http://blog.51cto.com/sxhxt/1130243

繼續閱讀