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