tools原理
LinuxTools---Rsync---原理及其應(yīng)用(二)
2014年03月30日 20:28:25 weixin_34087307 閱讀數(shù) 10 原文鏈接:http://blog.51cto.com/maoqiu/1387062? ?上篇博文 《LinuxTools---Rsync---原理及其應(yīng)用(一) 》中已經(jīng)了解了rsync這個(gè)工具的原理以及基于SSH備份源的rsync遠(yuǎn)程備份的搭建,下面將介紹有關(guān)rsync備份源。
rsync不僅僅用作遠(yuǎn)程同步的發(fā)起端(客戶端),也可以作為守護(hù)進(jìn)程運(yùn)行,為其他客戶機(jī)提供備份源,配置rsync備份源需要建立配置文件rsync.conf,創(chuàng)建備份賬戶,然后將rsync程序以”- -daemon”選項(xiàng)運(yùn)行。
建立/etc/rsyncd.conf配置文件:
配置文件rsyncd.conf位于/etc/目錄下,需自行建立,配置內(nèi)容的格式與samba服務(wù)器類似,具體可以參考man手冊頁,下面將以源目錄/var/www/html、備份賬號(hào)backupuser為例,介紹其配置方法。
在備份源服務(wù)器上創(chuàng)建rsyncd.conf文件。該文件要手工創(chuàng)建。
rsync配置文件介紹:
全局參數(shù):對整個(gè)rsync服務(wù)器生效,如果模塊參數(shù)和全局參數(shù)沖突,針對沖突模塊的模塊參數(shù)生效
模塊參數(shù):定義需要通過rsync輸出的目錄定義的參數(shù)
下面是常見的全局配置參數(shù),
port #→指定后臺(tái)程序使用的端口號(hào),默認(rèn)為873。 uid #→該選項(xiàng)指定當(dāng)該模塊傳輸文件時(shí)守護(hù)進(jìn)程應(yīng)該具有的uid,配合gid選項(xiàng)使用可以確定哪些可以訪問怎么樣的文件權(quán)限,默認(rèn)值是" nobody"。 gid #→該選項(xiàng)指定當(dāng)該模塊傳輸文件時(shí)守護(hù)進(jìn)程應(yīng)該具有的gid。默認(rèn)值為" nobody"。 max connections #→指定該模塊的最大并發(fā)連接數(shù)量以保護(hù)服務(wù)器,超過限制的連接請求將被告知隨后再試。默認(rèn)值是0,也就是沒有限制。 lock file #→指定支持max connections參數(shù)的鎖文件,默認(rèn)值是/var/run/rsyncd.lock。 motd file #→" motd file"參數(shù)用來指定一個(gè)消息文件,當(dāng)客戶連接服務(wù)器時(shí)該文件的內(nèi)容顯示給客戶,默認(rèn)是沒有motd文件的。 log file #→" log file"指定rsync的日志文件,而不將日志發(fā)送給syslog。 pid file #→指定rsync的pid文件,通常指定為“/var/run/rsyncd.pid”,存放進(jìn)程ID的文件位置。 hosts allow = #→單個(gè)IP地址或網(wǎng)絡(luò)地址 //允許訪問的客戶機(jī)地址下面是常見的模塊配置參數(shù)
主要是定義服務(wù)器哪個(gè)目錄要被同步輸出。
其格式必須為“[共享模塊名]”形式,這個(gè)名字就是在rsync客戶端看到的名字,其實(shí)有點(diǎn)象Samba服務(wù)器提供的共享名。而服務(wù)器真正同步的數(shù)據(jù)是通過path來指定的。
Comment #→給模塊指定一個(gè)描述,該描述連同模塊名在客戶連接得到模塊列表時(shí)顯示給客戶。默認(rèn)沒有描述定義。 Path #→指定該模塊的供備份的目錄樹路徑,該參數(shù)是必須指定的。 read only #→yes為只允許下載,no為可以下載和上傳文件到服務(wù)器 exclude #→用來指定多個(gè)由空格隔開的多個(gè)文件或目錄(相對路徑),將其添加到exclude列表中。這等同于在客戶端命令中使用—exclude或----filter來指定某些文件或目錄不下載或上傳(既不可訪問) exclude from #→指定一個(gè)包含exclude模式的定義的文件名,服務(wù)器從該文件中讀取exclude列表定義,每個(gè)文件或目錄需要占用一行 include #→用來指定不排除符合要求的文件或目錄。這等同于在客戶端命令中使用--include來指定模式,結(jié)合include和exclude可以定義復(fù)雜的exclude/include規(guī)則。 include from #→指定一個(gè)包含include模式的定義的文件名,服務(wù)器從該文件中讀取include列表定義。 auth users #→該選項(xiàng)指定由空格或逗號(hào)分隔的用戶名列表,只有這些用戶才允許連接該模塊。這里的用戶和系統(tǒng)用戶沒有任何關(guān)系。如果" auth users"被設(shè)置,那么客戶端發(fā)出對該模塊的連接請求以后會(huì)被rsync請求challenged進(jìn)行驗(yàn)證身份這里使用的challenge/response認(rèn)證協(xié)議。用戶的名和密碼以明文方式存放在" secrets file"選項(xiàng)指定的文件中。默認(rèn)情況下無需密碼就可以連接模塊(也就是匿名方式)。 secrets file #→該選項(xiàng)指定一個(gè)包含定義用戶名:密碼對的文件。只有在" auth users"被定義時(shí),該文件才有作用。文件每行包含一個(gè)username:passwd對。一般來說密碼最好不要超過8個(gè)字符。沒有默認(rèn)的secures file名,注意:該文件的權(quán)限一定要是600,否則客戶端將不能連接服務(wù)器。 hosts allow #→指定哪些IP的客戶允許連接該模塊。定義可以是以下形式:單個(gè)IP地址,例如:192.167.0.1,多個(gè)IP或網(wǎng)段需要用空格隔開,整個(gè)網(wǎng)段,例如:192.168.0.0/24,也可以是192.168.0.0/255.255.255.0 “*”則表示所有,默認(rèn)是允許所有主機(jī)連接。 hosts deny #→指定不允許連接rsync服務(wù)器的機(jī)器,可以使用hosts allow的定義方式來進(jìn)行定義。默認(rèn)是沒有hosts deny定義。 list #→該選項(xiàng)設(shè)定當(dāng)客戶請求可以使用的模塊列表時(shí),該模塊是否應(yīng)該被列出。如果設(shè)置該選項(xiàng)為false,可以創(chuàng)建隱藏的模塊。默認(rèn)值是true。 Timeout #→通過該選項(xiàng)可以覆蓋客戶指定的IP超時(shí)時(shí)間。通過該選項(xiàng)可以確保rsync服務(wù)器不會(huì)永遠(yuǎn)等待一個(gè)崩潰的客戶端。超時(shí)單位為秒鐘,0表示沒有超時(shí)定義,這也是默認(rèn)值。對于匿名rsync服務(wù)器來說,一個(gè)理想的數(shù)字是600。創(chuàng)建rsyncd.conf文件:
配置文件內(nèi)容如下:
注:如果以"use chroot = no"選項(xiàng)運(yùn)行可寫的rsync守護(hù)程序的話,***者就可能通過誘騙rsync在模塊之外創(chuàng)建文件,所以出于安全考慮,建議將該選項(xiàng)設(shè)置為yes。
基于安全性考慮,對于rsync的備份源最好僅允許以只讀方式做下行同步,若確實(shí)需要做上行同步時(shí),建議改用SSH備份源。另外,下行備份可以采用匿名的方式,只要將其中的”auth ?users”和”secrets ?file”配置記錄去掉就可以了。
為備份賬戶創(chuàng)建數(shù)據(jù)文件:
根據(jù)上一步的設(shè)置,創(chuàng)建賬號(hào)數(shù)據(jù)文件,添加一行用戶記錄,以冒號(hào)分隔,用戶名稱為backupuser,密碼為pwd123。由于賬號(hào)信息采用明文存放,因此應(yīng)調(diào)整文件權(quán)限,避免賬號(hào)信息泄露。
在該文件中添加用戶名和密碼
設(shè)置rsyncd_users.db文件的權(quán)限為700或600,權(quán)限設(shè)置不對的話身份驗(yàn)證會(huì)失敗
與配置SSH備份源類似,備份用戶backuper也需要對源目錄/var/www/html/有相應(yīng)的讀取權(quán)限。實(shí)際上只要other組有讀取權(quán)限,則備份用戶backuper和運(yùn)行用戶nobody也就有了讀取權(quán)限了。
啟動(dòng)rsync服務(wù)程序,執(zhí)行”rsync ?--daemon”命令就可以啟動(dòng)rsync服務(wù),以獨(dú)立監(jiān)聽服務(wù)的方式運(yùn)行,若要關(guān)閉rsync服務(wù),可以采用kill進(jìn)程的方式。
將”rsync ?--daemon”保存到/etc/rc.local文件中,確保系統(tǒng)啟動(dòng)后自動(dòng)啟動(dòng)rsync服務(wù)。
上面啟動(dòng)rsync服務(wù)程序是通過”rsync ?--daemon”方式啟動(dòng)rsync服務(wù)。考慮到異地備份的特性,通常并不需要全天不間斷運(yùn)行,最好只是在有客戶機(jī)連接的時(shí)候才啟用,因此可以將rsync交給超級(jí)服務(wù)xinetd管理,只要修改相應(yīng)配置并啟動(dòng)xinetd服務(wù),就可以提供rsync服務(wù)了。也就是當(dāng)xinetd服務(wù)接收到客戶端的同步請求后,會(huì)把rsync同步請求轉(zhuǎn)給rsync程序。
配置方法:
修改后內(nèi)容如下:
注:將disable = yes改為no;確信有- -daemon服務(wù)選項(xiàng).
安裝xinetd服務(wù)軟件包:
啟動(dòng)xinetd服務(wù):
至此rsync備份源配置完畢,下面使用rsync備份工具實(shí)現(xiàn)備份操作。
格式1:rsync 選項(xiàng)用戶名@備份源服務(wù)器IP::共享模塊名目標(biāo)目錄
或
格式2:rsync 選項(xiàng) ?rsync://用戶名@備份源服務(wù)器IP/共享模塊名目標(biāo)目錄
在客戶機(jī)上執(zhí)行rsync命令實(shí)現(xiàn)下行同步操作:
或
編寫rsync備份腳本:
rsync備份源的無交互驗(yàn)證,對于rsync備份源來說,可使用環(huán)境變量RSYNC_PASSWORD來存放密碼。執(zhí)行rsync備份任務(wù)時(shí),會(huì)自動(dòng)讀取該變量,并在需要時(shí)發(fā)送給rsync源服務(wù)器來進(jìn)行驗(yàn)證。如下所示:
Rsync備份腳本如下:
內(nèi)容如下
對建好的備份腳本設(shè)置適當(dāng)權(quán)限:
設(shè)置計(jì)劃任務(wù),在crond計(jì)劃任務(wù)中按指定計(jì)劃執(zhí)行腳本。
到此rsync備份源配置完畢。
由于篇幅過長,影響各位看官閱讀質(zhì)量,故將"rsync+inotify實(shí)時(shí)同步"放到下篇博文中進(jìn)行介紹.
轉(zhuǎn)載于:https://blog.51cto.com/maoqiu/1387062
總結(jié)
- 上一篇: Hatree-Fork单粒子格林函数计算
- 下一篇: 托福 103,GRE 158+167+3