windows作爲文件服務器,使用rsync的windows服務版本,而後配置好就能夠了。須要的朋友能夠參考下。linux
windows作爲文件服務器,使用rsync的windows服務版本:cwRsyncServer 下載地址:http://rsync.samba.org
安裝過程要設置用於系統服務的賬號和密碼,能夠默認。
注:此賬號用於啓用crsync server服務,須要分配給賬號對要同步文件的相應權限,不然沒法操做被同步的文件。 web
目標:多服務器文件同步
環境:2臺CentOS5.6
Web端:192.168.20.20
Backup端:192.168.20.21
須要備份目錄爲:192.168.20.20:/usr/local/web1 /usr/local/web2
第一步:服務器端的配置windows
#rpm –qa |grep rsync && rpm –e rsync-** --dodeps
若是沒有的話,則自行下載安裝 (yum –y install rsync)服務器
#cd /usr/local/ # wget http://www.samba.org/ftp/rsync/src-previews/rsync-3.0.6pre1.tar.gz #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 = 4 pid file = /usr/local/rsync/pid/rsyncd.pid lock file = /usr/local/rsync/pid/rsync.lock log file = /usr/local/rsync/pid/rsyncd.log secrets file=/usr/local/rsync/pwd/rsyncd.pwd hosts allow = 192.168.20.0/24 hosts 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到指定文件,以便於使用腳本終止進程ui
read only = yes //該目錄設置爲只讀,即只容許客戶端下行同步,不容許上傳。若須要進行從備份機還原數據,改成no
rsyncd默認在873端口監聽服務,可在客戶端使用telnet鏈接測spa
# mkdir -p /usr/local/pid # mkdir -p /usr/local/pwd # vi /usr/local/rsync/pwd/rsyncd.pwd
web1:123456@789
web2: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軟件,同上
設置密碼文件只需填寫對應密碼:code
# 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有權限server
# 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 web1@192.168.20.20::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 便可。