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

2022-03-20 10:50:57 字數 3693 閱讀 6012

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 && make && make install

假設web伺服器有三個目錄需要備份

/www

/home/web_user1/

/home/web_user2/

建立rsync的配置檔案

#vim /etc/rsyncd.conf

uid = nobody

gid = nobody

use chroot = no

max connections = 4

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

[www]

path = /www/

ignore errors

read only = true

list = false

hosts allow = 10.80.11.244

hosts deny = 0.0.0.0/32

auth users = backup

secrets file = /etc/backserver.pas

[web_user1]

path = /home/web_user1/

ignore errors

read only = true

list = false

hosts allow = 10.80.11.244

hosts deny = 0.0.0.0/32

uid = web_user1

gid = web_user1

auth users = backup

secrets file = /etc/backserver.pas

[web_user2]

path = /home/web_user2/

ignore errors

read only = true

list = false

hosts allow = 10.80.11.244

hosts deny = 0.0.0.0/32

uid = web_user2

gid = web_user2

auth users = backup

secrets file = /etc/backserver.pas

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

gid = nobody        //

指定檔案傳輸過程中的組身份

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

pid file = /var/run/rsyncd.pid        //

儲存pid到指定檔案,以便於使用指令碼終止程序

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

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

密碼檔案為/etc/backserver.pas

#vim /etc/backserver.pas

backup:123456

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

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

#chmod 600 /etc/backserver.pas

然後建立備份使用者

#useradd backup

#passwd backup

在伺服器端啟動rsync服務

# nohup rsync --daemon &

第二步:備份端的配置

安裝rsync軟體,同上

設定密碼檔案

#vim /etc/rsync.pas

123456

在客戶端不需要加使用者名稱,只需要加密碼,同時設定為只有root有許可權

#chmod 600 /etc/rsync.pass

建立備份目錄

#mkdir-p /backup/www

#mkdir -p /backup/web_user1

#mkdir -p /backup/web_user2

把伺服器端檔案www模組備份到本機

#/usr/bin/rsync -vzrtopg --delete --exclude "logs/" --exclude "conf/ssl.*/" --progress [email protected]::www /backup/www/ --password-file=/etc/rsync.pass

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

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

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

對其他的模組的備份如下:

#/usr/bin/rsync -vzrtopg --delete --exclude "logs/" --exclude "conf/ssl.*/" --progress [email protected]::web_user1 /backup/web_user1/ --password-file=/etc/rsync.pass

#/usr/bin/rsync -vzrtopg --delete --exclude "logs/" --exclude "conf/ssl.*/" --progress [email protected]:: web_user2 /backup/web_user2/ --password-file=/etc/rsync.pass

如果提示以下錯誤

@error: invalid uid web_user2

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

則需要修改web伺服器上的web_user2的uid和gid注釋掉

定時備份的話,在crontab –e裡面設定

附:備份指令碼,可以加入crontab,按時自動備份(backup伺服器上執行)

#!/bin/bash

date=`date  +%w`

rsync -tvzrp -e ssh --progress --delete [email protected]::www /backup/www/$date   --password-file=/etc/rsync.pass > /var/log/test.$date

mail -s "backup is done" [email protected] < /var/log/test.$date

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

windows做為檔案伺服器,使用rsync的windows服務版本,然後配置好就可以了。需要的朋友可以參考下。目標 多伺服器檔案同步 環境 2臺centos5.6 web端 192.168.20.20 backup端 192.168.20.21 需要備份目錄為 192.168.20.20 usr ...

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目錄就會被清空了,刪除的速度...