【51CTO獨家特稿】搞運維的同行們對遠程同步工具Rsync應該都不陌生。Rsync的使用和配置方法網(wǎng)上已經(jīng)有很多,本文就不用再多說。這篇文章主要是跟大家分享一下我在使用Rsync的過程中總結(jié)的一些心得經(jīng)驗,以及出現(xiàn)一些權(quán)限問題的時候,應該如何解決。 作者簡介:余洪春(博客),網(wǎng)名撫琴煮酒,英文名Andrew.Yu,武漢某外企高級Linux/Unix系統(tǒng)管理員、項目實施工程師,紅帽RHCE講師,擅長負載均衡高可用和中小型證券類和商務網(wǎng)站架構(gòu),目前關(guān)注網(wǎng)站架構(gòu)研究及網(wǎng)絡安全。 相關(guān)閱讀:FreeBSD 8上的Rsync同步簡易教程 推薦專題:企業(yè)內(nèi)網(wǎng)開發(fā)環(huán)境部署與管理全攻略(FreeBSD+PHP) 本文使用的測試機器: rsync服務器 64-bit Centos5.5 192.168.21.41 rsync客戶端 64-bit FreeBSD8.1 192.168.21.44 一、什么是rsync? Rsync(remote synchronize)是一個遠程數(shù)據(jù)同步工具,可通過LAN/WAN快速同步多臺主機間的文件。Rsync使用所謂的“Rsync算法”來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當快。 rsync的優(yōu)點 ①可以鏡像保存整個目錄樹和文件系統(tǒng); ②可以很容易做到保持原來文件的權(quán)限、時間、軟硬鏈接等; ③無須特殊權(quán)限即可安裝; ④優(yōu)化的流程,文件傳輸效率高; ⑤可以使用rsh、ssh等方式來傳輸文件,當然也可以通過直接的socket連接; ⑥支持匿名傳輸 二、服務器端的配置 具體的就不多說了,重要的地方說一下。首先檢查rsync是否安裝: rpm –q rsync rsync-2.6.8-3.1 說明rsync已安裝,如果提示出現(xiàn) package rsync is not installed 則說明這個軟件報沒有安裝大家可以使用yum進行安裝 另外,關(guān)閉防火墻和SElinux,因為是內(nèi)網(wǎng)中傳輸,所以這些沒必要 service iptables stop && chkconfig iptables off setenforce 0 下面分享下我自己定義的配置文件/etc/rsyncd.conf。這個文件是我自己定義的,并不是系統(tǒng)創(chuàng)建的,當然你也可以叫不同的名字;文件我先貼出來,方便線上環(huán)境的朋友直接復制,后面再寫上詳細注釋。 uid = nobody gid = nobody user chroot = no max connections = 200 timeout = 600 pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock log file = /var/log/rsyncd.log [backup] path=/backup/ ignore errors read only = no list = no hosts allow = 192.168.21.0/255.255.255.0 auth users = test secrets file = /etc/rsyncd.password 注釋: uid = nobody 進行備份的用戶,nobody 為任何用戶 gid = nobody 進行備份的組,nobody為任意組 use chroot = no 如果"use chroot"指定為true,那么rsync在傳輸文件以前首先chroot到path參數(shù)所指定的目錄下。這樣做的原因是實現(xiàn)額外的安全防護,但是缺點是需要以root權(quán)限,并且不能備份指向外部的符號連接所指向的目錄文件。默認情況下chroot值為true.但是這個一般不需要,我選擇no或false list = no 不允許列清單 max connections = 200 最大連接數(shù) timeout = 600 覆蓋客戶指定的IP超時時間,也就是說rsync服務器不會永遠等待一個崩潰的客戶端。 pidfile = /var/run/rsyncd.pid pid文件的存放位置 lock file = /var/run/rsync.lock 鎖文件的存放位置 log file = /var/log/rsyncd.log 日志文件的存放位置 [backup] 這里是認證模塊名,即跟samba語法一樣,是對外公布的名字 path = /backup/ 這里是參與同步的目錄 ignore errors 可以忽略一些無關(guān)的IO錯誤 read only = no 允許可讀可寫 list = no 不允許列清單 hosts allow = 192.168.21.0/255.255.255.0 這里跟samba的語法是一樣的,只允許192.168.21.0/24的網(wǎng)段進行同步,拒絕其它一切 auth users = test 認證的用戶名 secrets file = /etc/rsyncd.password 密碼文件存放地址 注意:對于這個地方的配置文件,雖然解釋的很清楚,可是一些朋友始終還會在這里出錯,這里我提亮點易錯點: 1、[backup] 認證模塊名和 path = /backup/ 參與同步的目錄 這里的path 大家要記好了,這里不要隨便的一設置就直接完事,要知道這里是認證模塊的,以后從客戶機備份的數(shù)據(jù)會存儲在這里。 2、auth users = redhat 認證的用戶名 這個名字是服務器端實實在在存在用戶,大家不要直接跟步驟走卻忽略了這點。如果服務器端少了這個的話我估計你的數(shù)據(jù)同步就實現(xiàn)不了,大家要謹記。 3、path = /backup/ 參與同步的目錄 這個需要稍后自己要在根目錄下自己建 cd / mkdir backup chmod –R 777 /backup echo “test:test” > /etc/rsyncd.password (這里我設置的是用戶名和密碼一致) 為了安全起見,我設置他的權(quán)限為600 chmod 600 /etc/rsync.password 客戶端配置: echo “test” > /etc/rsyncd.password 這里僅僅只需要密碼,不需要用戶了,免得要同步時還要手動互動 chmod 600 /etc/rsync.password 配置完了之后,可能會遇到一些權(quán)限問題。以下就一些常見的權(quán)限問題進行解答:
內(nèi)容導航
|
|