新聞中心
一、簡(jiǎn)介(摘自百度百科):
站在用戶的角度思考問題,與客戶深入溝通,找到濟(jì)寧網(wǎng)站設(shè)計(jì)與濟(jì)寧網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋濟(jì)寧地區(qū)。
rsync是linux系統(tǒng)下的數(shù)據(jù)鏡像備份工具。
使用快速增量備份工具Remote Sync可以遠(yuǎn)程同步,
支持本地復(fù)制,或者與其他SSH、rsync主機(jī)同步。
二、配置rsync源
配置rsync源服務(wù)器大致分為三步:
(1)創(chuàng)建rsync配置文件
(2)創(chuàng)建同步賬戶數(shù)據(jù)文件
(3)啟動(dòng)rsync服務(wù)
----------
(1)創(chuàng)建rsync配置文件(實(shí)驗(yàn)虛擬機(jī)為CentOS7)
CentOS7之前的版本,rsyncd.conf配置文件需要自己創(chuàng)建,(安裝:yum install -y rsync)
CentOS7之后已經(jīng)預(yù)裝rsync,且rsyncd.conf中有簡(jiǎn)單的模板參考信息,如下圖:
編輯該文件,配置模塊信息,加入如下配置:
address?=?192.168.100.101 port?=?873 uid?=?root gid?=?root use?chroot?=?yes max?connections?=?10 transfer?logging?=?yes log?format?=?%t?%a?%m?%f?%b syslog?facility?=?local3 timeout?=?300 pid?file?=?/var/run/rsync.pid? lock?file=/var/run/rsync.lock log?file?=?/var/log/rsync.log [Anker] path?=?/home/anker/rsync-test list?=?false read?only?=?yes? hosts?allow?=?192.168.100.100 comment?=?rsync?test auth?users?=?anker secrets?file?=?/etc/rsyncd.password exclude?=??bin/?lib/?conf/
(2)添加同步賬戶及密碼
echo anker:123456 > rsyncd.password???????? (密碼為該用戶的密碼)
用戶名與密碼之間用:隔開,且賦予該文件600權(quán)限
chmod 600 rsyncd.password
(3)啟動(dòng)rsync服務(wù)
rsync --daemon
三、遠(yuǎn)程同步
在同步服務(wù)器執(zhí)行命令? rsync -av anker@192.168.100.101::Anker .
(未做免密需要輸入101服務(wù)器anker用戶的密碼,配合crond計(jì)劃任務(wù)時(shí)需做免密登錄)
rsync常用選項(xiàng)
-a 歸檔模式,表示以遞歸方式傳輸文件,并保持所有屬性,等同于? -rlptgoD,-a選項(xiàng)后面可以跟一個(gè) --no-OPTION 這個(gè)表示關(guān)閉 -rlptgoD中的某一個(gè),
例如? -a--no-l 等同于 -rptgoD
-r 對(duì)子目錄以遞歸模式處理,主要針對(duì)目錄,若傳輸一個(gè)單獨(dú)文件不需要加 -r,但傳輸目錄必須加-r選項(xiàng)
-v? 打印一些信息出來,比如速率、數(shù)量等
-l 保留軟鏈接
-L 像對(duì)待常規(guī)文件一樣處理軟鏈接,如果是SRC中有軟鏈接文件,則加上該選項(xiàng)后,將會(huì)把軟鏈接指向的目標(biāo)文件拷貝到DST
-p 保持文件權(quán)限
-o 保持文件屬主信息
-g 保持文件屬組信息
-D 保持設(shè)備文件信息
-t 保持文件時(shí)間信息
--delete 刪除那些DST中SRC沒有的文件
--exclude=PATTERN 指定排除不需要傳輸?shù)奈募忍?hào)后面跟文件名,可以是通配符模式(*.txt)
--progress 在同步的過程中可以看到同步的過程狀態(tài),比如統(tǒng)計(jì)要同步的文件數(shù)量、同步的文件傳輸速度等等
-u 加上這個(gè)選項(xiàng)后將會(huì)把DST中比SRC還新的文件排除掉,不會(huì)覆蓋
常用選項(xiàng):??? -a -v? --delete --exclude
傳輸限速(防止rsync耗帶寬):
rsync -arvuztopg --port=873 --bwlimit=10240? --password-file=/home/anker/rsync/rsync.passwd? anker@192.168.100.101::m2 /home/anker/.m2/repository/
文件刪除(需要先創(chuàng)建一個(gè)空目錄,如下 anker為空目錄 test為目標(biāo)目錄,清空test目錄):
rsync --delete-before -d anker/? test/????????????????????? #在刪除包含大量文件目錄的時(shí)候,使用該方式比rm速度快
rsync 常見錯(cuò)誤與解決方法
(摘自https://www.jb51.net/article/31920.htm)
問題一:
@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
服務(wù)器端的目錄不存在或無權(quán)限,創(chuàng)建目錄并修正權(quán)限可解決問題。
問題二:
@ERROR: auth failed on module tee
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
服務(wù)器端該模塊(tee)需要驗(yàn)證用戶名密碼,但客戶端沒有提供正確的用戶名密碼,認(rèn)證失敗。
提供正確的用戶名密碼解決此問題。
問題三:
@ERROR: Unknown module ‘tee_nonexists'
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
服務(wù)器不存在指定模塊。提供正確的模塊名或在服務(wù)器端修改成你要的模塊以解決問題。
問題1:
在client上遇到問題:
rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/
rsync: could not open password file "/etc/rsync.pas": No such file or directory (2)
Password:
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
遇到這個(gè)問題:client端沒有設(shè)置/etc/rsync.pas這個(gè)文件,而在使用rsync命令的時(shí)候,加了這個(gè)參數(shù)--
password-file=/etc/rsync.pas
問題2:
rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
遇到這個(gè)問題:client端已經(jīng)設(shè)置/etc/rsync.pas這個(gè)文件,里面也設(shè)置了密碼111111,和服務(wù)器一致,但是
服務(wù)器段設(shè)置有錯(cuò)誤,服務(wù)器端應(yīng)該設(shè)置/etc/rsync.pas ,里面內(nèi)容root:111111 ,這里登陸名不可缺少
問題3:
rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
遇到這個(gè)問題,是因?yàn)榉?wù)器端的/home/backup 其中backup這個(gè)目錄并沒有設(shè)置,所以提示:chdir failed
問題4:
rsync: write failed on "/home/backup2010/wensong": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(302) [receiver=3.0.7]
rsync: connection unexpectedly closed (2721 bytes received so far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [generator=3.0.7]
磁盤空間不夠,所以無法操作。
可以通過df /home/backup2010 來查看可用空間和已用空間
問題5:網(wǎng)絡(luò)收集問題
1、權(quán)限問題
類似如下的提示:rsync: opendir "/kexue" (in dtsChannel) failed: Permission denied (13)注意查看同步的目錄權(quán)限是否為755
2、time out
rsync: failed to connect to 203.100.192.66: Connection timed out (110)
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
檢查服務(wù)器的端口netstat –tunlp,遠(yuǎn)程telnet測(cè)試。
可能因?yàn)榭蛻舳嘶蛘叻?wù)端的防火墻開啟 導(dǎo)致無法通信,可以設(shè)置規(guī)則放行 rsync(873端口) 或者直接關(guān)閉防火墻。
還有一種在同步過程中可能會(huì)提示沒有權(quán)限 (將同步目錄加上SvcwRsync全部權(quán)限即可,更簡(jiǎn)單的方法就是將SvcwRsync設(shè)為管理員即可)
3、服務(wù)未啟動(dòng)
rsync: failed to connect to 10.10.10.170: Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
啟動(dòng)服務(wù):rsync --daemon --config=/etc/rsyncd.conf
4、磁盤空間滿
rsync: recv_generator: mkdir "/teacherclubBackup/rsync……" failed: No space left on device (28)
*** Skipping any contents from this failed directory ***
5、Ctrl+C或者大量文件
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [receiver=3.0.5]
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [generator=3.0.5]
說明:導(dǎo)致此問題多半是服務(wù)端服務(wù)沒有被正常啟動(dòng),到服務(wù)器上去查查服務(wù)是否有啟動(dòng),然后查看下 /var/run/rsync.pid
文件是否存在,最干脆的方法是殺死已經(jīng)啟動(dòng)了服務(wù),然后再次啟動(dòng)服務(wù)或者讓腳本加入系統(tǒng)啟動(dòng)服務(wù)級(jí)別然后shutdown -r now服務(wù)器
6、xnetid啟動(dòng)
rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(759) [receiver=3.0.5]
查看rsync日志
rsync: unable to open configuration file "/etc/rsyncd.conf": No such file or directory
xnetid查找的配置文件位置默認(rèn)是/etc下,根據(jù)具體情況創(chuàng)建軟鏈接。例如:
ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf
或者更改指定默認(rèn)的配置文件路徑,在/etc/xinetd.d/rsync配置文件中。
Rsync configure:
配置一:
ignore errors
說明:這個(gè)選項(xiàng)最好加上,否則再很多crontab的時(shí)候往往發(fā)生錯(cuò)誤你也未可知,因?yàn)槟悴豢赡芴焯烊タ疵繒r(shí)每刻去看log,不加上這個(gè)出現(xiàn)錯(cuò)誤的幾率相對(duì)會(huì)很高,因?yàn)槿魏未簏c(diǎn)的項(xiàng)目和系統(tǒng),磁盤IO都是一個(gè)瓶頸
Rsync error:
錯(cuò)誤一:
@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)
說明:這是因?yàn)槊艽a設(shè)置錯(cuò)了,無法登入成功,檢查一下rsync.pwd,看客服是否匹配。還有服務(wù)器端沒啟動(dòng)rsync 服務(wù)也會(huì)出現(xiàn)這種情況。
錯(cuò)誤二:
password file must not be other-accessible
continuing without password file
Password:
說明:這是因?yàn)閞syncd.pwd rsyncd.sec的權(quán)限不對(duì),應(yīng)該設(shè)置為600。如:chmod 600 rsyncd.pwd
錯(cuò)誤三:
@ERROR: chroot failed
rsync: connection unexpectedly closed (75 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(150)
說明:這是因?yàn)槟阍?rsync.conf 中設(shè)置的 path 路徑不存在,要新建目錄才能開啟同步
錯(cuò)誤四:
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]
說明:防火墻問題導(dǎo)致,這個(gè)最好先徹底關(guān)閉防火墻,排錯(cuò)的基本法就是這樣,無論是S還是C,還有ignore errors選項(xiàng)問題也會(huì)導(dǎo)致
錯(cuò)誤五:
@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)
說明:此問題很明顯,是配置選項(xiàng)host allow的問題,初學(xué)者喜歡一個(gè)允許段做成一個(gè)配置,然后模塊又是同一個(gè),致使導(dǎo)致
錯(cuò)誤六:
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]
說明:導(dǎo)致此問題多半是服務(wù)端服務(wù)沒有被正常啟動(dòng),到服務(wù)器上去查查服務(wù)是否有啟動(dòng),然后查看下 /var/run/rsync.pid
文件是否存在,最干脆的方法是殺死已經(jīng)啟動(dòng)了服務(wù),然后再次啟動(dòng)服務(wù)或者讓腳本加入系統(tǒng)啟動(dòng)服務(wù)級(jí)別然后shutdown -r now服務(wù)器
錯(cuò)誤七:
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]
說明:原數(shù)據(jù)目錄里沒有數(shù)據(jù)存在
rsync 錯(cuò)誤與解決方法整理補(bǔ)充篇
由于我們經(jīng)常使用rsync進(jìn)行服務(wù)器文件的同步工作,但在配置過程中,會(huì)出現(xiàn)很多問題,下面的錯(cuò)誤基本上都是通過客戶端返回的錯(cuò)誤進(jìn)行分析。
? ? ? 另外查找錯(cuò)誤過程中也學(xué)到了一個(gè)查看錯(cuò)誤的方法-查看系統(tǒng)日志,我們操作的每步都會(huì)在日志上有說明,有時(shí)候報(bào)錯(cuò)看不懂,日志上都寫的清清楚楚。
? ? ? 命令:cat /var/log/messages
問題一:
@ERROR: auth failed on module bachup
?rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:服務(wù)器端該模塊(backup)需要驗(yàn)證用戶名密碼,但客戶端沒有提供正確的用戶名密碼,認(rèn)證失敗。 ?提供正確的用戶名密碼解決此問題。?
這個(gè)問題比較蠢,如果可能你和我一樣明明在模塊里寫了密碼文件,怎么都不通,這個(gè)時(shí)候我勸你先檢查一下所寫模塊中是不是和下圖一樣。比如,某處多了個(gè)s。
問題二:110錯(cuò)誤 -time out
rsync: failed to connect to 203.100.192.66: Connection timed out (110)?
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
原因:
檢查服務(wù)器的端口netstat –tunlp,遠(yuǎn)程telnet測(cè)試。 可能因?yàn)榭蛻舳嘶蛘叻?wù)端的防火墻開啟 導(dǎo)致無法通信,可以設(shè)置規(guī)則放行 rsync(873端口) 或者直接關(guān)閉防火墻。?
在這里博主是重啟過服務(wù)器,然后就報(bào)110了,直接開啟rsync服務(wù)就行。
命令:service rsyncd start
問題三:113錯(cuò)誤 -防火墻
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]
原因:
防火墻問題導(dǎo)致,這個(gè)很簡(jiǎn)單,關(guān)閉防火墻就可以。不過博主還是被困在這里幾個(gè)小時(shí),因?yàn)閘inux防火墻分兩種:
-iptable和-firewall
認(rèn)識(shí)到這個(gè)問題首先查看系統(tǒng)的防火墻種類,查看防火墻狀態(tài)即可
service iptable status
firewall-cmd --state
確定防火墻種類后再按對(duì)應(yīng)方法將防火墻關(guān)閉即可。
問題四:1516錯(cuò)誤
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1516) [Receiver=3.0.9]
解決:這個(gè)問題錯(cuò)誤差別很大,可查看系統(tǒng)日志查看錯(cuò)誤,再搜索解決方法。
注意:一般這種情況都建立在可以連通的基礎(chǔ)。去服務(wù)端查看系統(tǒng)日志,可以查看相關(guān)錯(cuò)誤。
命令:cat /var/log/massages
cat /var/log/rsyncd.log
本文標(biāo)題:遠(yuǎn)程同步工具之rsync實(shí)戰(zhàn)(后臺(tái)服務(wù)方式)
新聞來源:http://www.ef60e0e.cn/article/pcpcpp.html