Linux下利用rsync實現多伺服器檔案同步

2022-03-08 05:51:42 字數 4366 閱讀 3260

windows做為檔案伺服器,使用rsync的windows服務版本,然後配置好就可以了。需要的朋友可以參考下。

目標:多伺服器檔案同步

環境:2臺centos5.6

web端:192.168.20.20

backup端:192.168.20.21

需要備份目錄為:192.168.20.20:/usr/local/web1 /usr/local/web2

第一步:伺服器端的配置

#

rpm –qa |grep rsync && rpm –e rsync-** --dodeps

#

cd /usr/local/

#wget

#tar –zxvf rsync-3.0.6pre1.tar.gz

#cd rsync-3.0.6pre1

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

#make && make install

#vi /etc/rsyncd.conf

uid =nobody

gid =nobody

use chroot =no

max connections = 4pid

file = /usr/local/rsync/pid/rsyncd.pid

lock

file = /usr/local/rsync/pid/rsync.lock

logfile = /usr/local/rsync/pid/rsyncd.log

secrets

file=/usr/local/rsync/pwd/rsyncd.pwd

hosts allow = 192.168.20.0/24hosts deny = *[web1]

path=/usr/local/web1

comment =backup web1

ignore errors

read only =yes

#list = no

auth users =web1

[web2]

path=/usr/local/web2

comment =backup web2

ignore errors

read only =yes

#list = no

auth users = web2

uid = nobody        //指定檔案傳輸過程中的使用者身份

gid = nobody        //指定檔案傳輸過程中的組身份

log file = /var/log/rsyncd.log        //指定使用獨立的日誌檔案的位置

pid file = /var/run/rsyncd.pid        //儲存pid到指定檔案,以便於使用指令碼終止程序

read only = yes        //該目錄設定為唯讀,即只允許客戶端下行同步,不允許上傳。若需要進行從備份機還原資料,改為no

rsyncd預設在873埠監聽服務,可在客戶端使用telnet連線測

#

mkdir -p /usr/local/pid

#mkdir -p /usr/local/pwd

#vi /usr/local/rsync/pwd/rsyncd.pwd

web1:123456@789web2:789@123456

格式為:使用者名稱:密碼

設定密碼檔案僅僅root使用者能訪問

#

chmod 600 /usr/local/rsync/pwd/rsyncd.pwd

#cp /usr/local/rsync/bin/rsync /usr/bin/

在伺服器端啟動rsync服務

#

rsync –daemon (注意重啟kill後要把.pid .lock刪掉)

第二步:備份端的配置

安裝rsync軟體,同上

設定密碼檔案只需填寫對應密碼:

#

touch /usr/local/rsync/web1

#touch /usr/local/rsync/web2

#vi /usr/local/rsync/web1

123456@789 #

vi /usr/local/rsync/web2

789@123456

同時設定為只有root有許可權

#

chmod 600 /usr/local/rsync/wbe1

建立備份目錄

#

mkdir -p /usr/local/web1

#mkdir -p /usr/local/web2

#rsync –daemon

把伺服器端檔案web1備份到本機(備份機):

#

/usr/bin/rsync -vzrtopg --progress --delete --exclude "logs/" --exclude "conf/ssl.*/" --password-file=/usr/local/rsync/web1 [email protected]::web1 /usr/local/web1

# web2 也是一樣的如上手動進行同步

--delete是指如果伺服器端刪除了這一檔案,那麼客戶端也相應把檔案刪除,保持真正的一致, 刪除本地目錄中多餘的檔案

-- exclude "logs/" 表示不對/web1/logs目錄下的檔案進行備份。

--exclude "conf/ssl.*/"表示不對/web1/conf/ssl.*/目錄下的檔案進行備份。

如果需要可以放到crontab 計畫任務中間隔性的進行同步備份!

將以上命令寫入計畫任務,每1分鐘執行,即可實現實時同步的效果。 

注: 上面這個命令列中-vzrtopg裡的v是verbose,z是壓縮,r是recursive,topg都是保持檔案原有屬性如屬主、時間的引數。-- progress是指顯示出詳細的進度情況,--delete是指如果伺服器端刪除了這一檔案,那麼客戶端也相應把檔案刪除,保持真正的一致。 

附,rsync使用時的常見問題:

錯誤1: rsync: read error: connection reset by peer (104) 

rsync error: error in rsync protocol data stream (code 12) at io.c(794) [receiver=3.0.2] 

解決:很大可能是伺服器端沒有開啟 rsync 服務。開啟服務。 或者開啟了防火牆指定的埠無法訪問。 

錯誤2:@error: chdir failed 

rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2] 

解決:伺服器端同步目錄沒有許可權,cwrsync預設使用者是svcwrsync。為同步目錄新增使用者svcwrsync許可權。 

錯誤3:@error: failed to open lock file 

rsync error: error starting client-server protocol (code 5) at main.c(1495) [receiver=3.0.2] 

解決:伺服器端配置檔案 rsyncd.conf中新增 lock file = rsyncd.lock 即可解決。 

錯誤4:@error: invalid uid nobody 

rsync error: error starting client-server protocol (code 5) at main.c(1506) [receiver=3.0.2] 

解決:在rsyncd.conf檔案中新增下面兩行即可解決問題 

uid = 0 

gid = 0 

錯誤5:@error: auth failed on module test2 

rsync error: error starting client-server protocol (code 5) at main.c(1296) [receiver=3.0.2] 

解決:服務端沒有指定正確的secrets file,請在 [test2]配置段新增如下配置行: 

auth users = coldstar #同步使用的帳號 

secrets file = rsyncd.secrets #密碼檔案 

錯誤6:password file must not be other-accessible 

解決:客戶端的pass檔案要求許可權為600, chmod 600 /etc/rsync.pass 即可。

Linux下利用rsync實現多伺服器檔案同步

linux下利用rsync實現多伺服器檔案同步 第一部分 簡單的資料備份 第一步 伺服器端的配置 rpm qa grep rsync cd usr local src wget tar zxvf rsync 3.0.6pre1.tar.gz cd rsync 3.0.6pre1 configure ...

linux下使用rsync實現目錄下大量檔案的刪除

一般情況下,我們刪除檔案使用 rm f,刪除目錄時使用rm rf,但是rm rf是有缺陷的,當目錄上的檔案太多時,會刪不動目錄。這時候,我們可以使用rsync,通過一種巧妙的替換方式來實現目錄下大量檔案的刪除。具體使用方法可以使用man檢視。使用步驟 1.先安裝rsync.我安裝的是rsync 3....

利用rsync實現快速刪除海量檔案

1 先安裝rsync yum install rsync 2 建立乙個空的資料夾 mkdir tmp test 3 用rsync刪除目標目錄 rsync delete before a h v progress stats tmp test log 這樣我們要刪除的log目錄就會被清空了,刪除的速度...