兩種方式的區(qū)別rsync同步文件有兩種方式,一種是daemon的方式(rsync daemon)另一種方式是通過遠(yuǎn)程shell方式(rsync remote shell)。
daemon方式,這種方式通過TCP方式連接遠(yuǎn)程rsync daemon,需要使用配置文件,并啟用daemon進(jìn)程。
rsync [OPTION] user@host::src destrsync [OPTION] src user@host::destremote shell方式,這種方式不需要使用配置文件,也不需要daemon進(jìn)程。
rsync [OPTION] user@host:src destrsync [OPTION] src user@host:destdaemon方式太麻煩了,好要去設(shè)置配置文件和daemon進(jìn)程,因此我選用了remote shell方式,就像下面這樣去同步:
rsync -avr --delete yanruitao@123.123.123.123:/export/test/htdocs/files/ /export/test/htdocs/files/其中參數(shù)avr --delete分別表示
-a 歸檔(archive)模式,以遞歸方式傳輸文件,并保持文件屬性-v 輸出同步的詳細(xì)信息(verbose)-r 對(duì)子目錄進(jìn)行遞歸模式處理(recursive)--delete 刪除源(SRC)中沒有目標(biāo)(DST)中有的文件如果一切正常的話,當(dāng)運(yùn)行上面的同步命令,會(huì)提示輸入遠(yuǎn)程機(jī)器yanruitao用戶的密碼(第一次的話會(huì)提示是否建立關(guān)系(好像是,具體忘了),直接回車就行),執(zhí)行完之后會(huì)按照規(guī)則去同步。
但是有個(gè)問題,我要添加一個(gè)crontab任務(wù),在每天2點(diǎn)鐘去增量同步一次,這個(gè)時(shí)候我不能去輸密碼,這個(gè)時(shí)候就得在兩臺(tái)機(jī)器上建立信任關(guān)系
兩臺(tái)機(jī)器之間建立信任關(guān)系在建立信任關(guān)系之前先看看基于公鑰、私鑰的加密和認(rèn)證
私鑰簽名過程下面這張圖是盜來的,哈哈,用這張圖理解認(rèn)證過程再合適不過了:
消息-->[私鑰]-->簽名-->[公鑰]-->認(rèn)證私鑰數(shù)字簽名,公鑰驗(yàn)證下面這張圖也是盜來的(有圖就是好理解),下面是Alice通過對(duì)稱密鑰技術(shù)發(fā)送信息給Bob:
消息-->[公鑰]-->簽名后的消息-->私鑰-->解密后的消息公鑰加密,私鑰解密
了解了上面公鑰和私鑰的知識(shí),現(xiàn)在我們來在兩個(gè)主機(jī)之間建立信任關(guān)系,,,要在101上對(duì)100建立信任關(guān)系(也就是100登錄101的時(shí)候不需要輸入密碼),這個(gè)時(shí)候就用到了私鑰簽名的過程:
在yanruitao192.168.1.100的家目錄下生成公鑰和私鑰(已經(jīng)有的可以忽略)ssh-keygen -t rsa#執(zhí)行完之后會(huì)在家目錄下的.ssh文件夾下生成id_rsa、id_rsa.pub兩個(gè)文件,后者是公鑰。scp .ssh/id_rsa.pub yanruitao@192.168.1.101:/home/yanruitao/#scp同樣是通過remote shell的方式傳送文件,回車之后會(huì)提示輸入密碼,此時(shí)#還未建立信任關(guān)系,因此需要輸入密碼。確認(rèn)100的公鑰發(fā)送給101在yanruitao192.168.1.101的家目錄下對(duì)yanruitao192.168.1.100建立信任關(guān)系#將剛才傳送的100機(jī)器的公鑰寫入101yanruitao及目錄下的.ssh/authorized_keys文件cat id_rsa.pub >> .ssh/authorized_keyschmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys#至此就在yanruitao@192.168.1.101上對(duì)192.168.1.100建立了信任關(guān)系設(shè)置crontab0 */2 * * * rsync yanruitao@192.168.1.101:/export/wwwroot/hotdocs/files/ /export/wwwroot/hotdocs/files/#設(shè)置完成,每天02:00分會(huì)執(zhí)行一次增量同步遇到的問題當(dāng)然了,自己實(shí)際操作的時(shí)候可能遇到問題,我在弄的時(shí)候,兩臺(tái)機(jī)器的用戶名是不同的,一個(gè)yanruitao一個(gè)mywife(哈哈,勿笑),在yanruitao對(duì)mywife簡(jiǎn)歷信任關(guān)系,這個(gè)時(shí)候就需要重新在mywife家目錄下操作上面的建立信任關(guān)系步驟。還有一個(gè)問題就是,在mywife機(jī)器上的/export/wwwroot/htdocs/files/文件夾的所有者一定要是mywife:
#修改文件夾所有者為mywifesudo chown mywife:users /export/wwwroot/htdocs/files/不然可能會(huì)報(bào)錯(cuò)(具體錯(cuò)誤我忘了,在公司碰到的),雖然好像不影響同步,但是$?會(huì)返回23,影響下面的操作,這里也要留意下。
參考文章http://www.williamlong.info/archives/837.htmlhttp://www.survivalescaperooms.com/ymy124/archive/2012/04/04/2432432.htmlhttp://www.zhihu.com/question/25912483
本文版權(quán)歸作者iforever()所有,未經(jīng)作者本人同意禁止任何形式的轉(zhuǎn)載,轉(zhuǎn)載文章之后必須在文章頁面明顯位置給出作者和原文連接,否則保留追究法律責(zé)任的權(quán)利。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注