標籤:inotify 部署 rsync
Rsync是一款遠程同步軟體,在同步檔案(檔案和目錄)的時候可以保持原檔案的許可權、修改時間、包括連結檔案也可以同步。
這個東西應用在什麼地方呢?不管你是什麼業務,如果你有幾十台以上的伺服器,並且這些伺服器需要即時保持擁有的檔案一致,那你就會用到這個工具。比如你有幾十台web伺服器,網頁檔案會經常修改,如何批量同步這些新的網頁檔案到所有伺服器上呢?
Inotify又是什麼呢?它是一種通知機制,隨著時間的推移,你的原檔案夾可能越來越大,如果每次同步都把整個目錄掃描一遍那簡直不敢想象,inotify就是核心提供的一種功能,可以實現對目錄的監控,如果該目錄有任何檔案的刪除、修改、建立它都會捕捉到這一動作,並可以把這一事件發送給其他應用程式。
主機名稱 |
IP |
說明 |
Linux01.localhost
|
10.10.6.12
|
|
Linux02.localhost |
10.10.6.15
|
運行rsync守護進程,作為Server端,接收推送。 |
安裝Rsync
實現原理:
rsync採用的是C/S結構,不過S端是伺服器端,運行rsync的守護進程,C端通過命令來向S端推送檔案。
安裝:
rpm -qa rsync #檢查是安裝了rsyncrpm -e rsync #如果安裝了,那麼就刪除,系統內建的版本比較低wget https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gz --no-check-certificate
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/E1/wKiom1ggOQPTaOL6AABLKuR6Ss0298.jpg-wh_500x0-wm_3-wmp_4-s_2307816096.jpg" style="float:none;" title="0.JPG" alt="wKiom1ggOQPTaOL6AABLKuR6Ss0298.jpg-wh_50" />
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/89/DE/wKioL1ggOQXjVSeVAADXf7CR8vw300.jpg-wh_500x0-wm_3-wmp_4-s_2681841241.jpg" style="float:none;" title="1.JPG" alt="wKioL1ggOQXjVSeVAADXf7CR8vw300.jpg-wh_50" />
tar -xzf rsync-3.1.2.tar.gzcd rsync-3.1.2./configure --prefix=/usr/local/rsync --disable-ipv6
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/89/E2/wKiom1ggPhug-F3vAABntIlYpq0354.jpg-wh_500x0-wm_3-wmp_4-s_2171279411.jpg" style="float:none;" title="5.JPG" alt="wKiom1ggPhug-F3vAABntIlYpq0354.jpg-wh_50" />
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/89/DF/wKioL1ggPhvALmp9AABje6vAKAg056.jpg-wh_500x0-wm_3-wmp_4-s_1749728479.jpg" style="float:none;" title="5.1.JPG" alt="wKioL1ggPhvALmp9AABje6vAKAg056.jpg-wh_50" />
如果不指定安裝目錄,則預設會安裝到如下目錄中:
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/89/DF/wKioL1ggPlmzhIZSAABN5Is9DTc296.jpg-wh_500x0-wm_3-wmp_4-s_3440622691.jpg" title="11.JPG" alt="wKioL1ggPlmzhIZSAABN5Is9DTc296.jpg-wh_50" />
make && make install
設定賬戶和目錄:
groupadd -r rsync #建立rsync系統組useradd -g rsync rsync -r -s /sbin/login #建立rsync系統帳號並加入到rsync組
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/89/E1/wKiom1ggNoLig1X_AABWZiegTDA944.jpg-wh_500x0-wm_3-wmp_4-s_2776443346.jpg" title="3.JPG" alt="wKiom1ggNoLig1X_AABWZiegTDA944.jpg-wh_50" />
mkdir backup #建立用於接收推送檔案的目錄chown rsync.rsync ./backup #設定改目錄的屬主和屬組位rsync
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/89/E1/wKiom1ggNxXggiRUAADIk8kcfNc126.jpg-wh_500x0-wm_3-wmp_4-s_2388742570.jpg" title="4.JPG" alt="wKiom1ggNxXggiRUAADIk8kcfNc126.jpg-wh_50" />
編輯設定檔:編譯安裝後它使用的設定檔預設位置為/etc/rsyncd.conf,但是預設這個檔案並不存在,需要你手動建立。
touch /etc/rsyncd.conf #守護進程使用的設定檔,必須是rsyncd.conftouch /etc/rsyncd.passwd #使用者名稱和密碼檔案,這個名字可以隨便chmod 600 /etc/rsyncd.passwd #修改密碼檔案許可權
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/89/E2/wKiom1ggRB2wCspQAABUd-0nTYw624.jpg-wh_500x0-wm_3-wmp_4-s_4030959988.jpg" title="6.JPG" alt="wKiom1ggRB2wCspQAABUd-0nTYw624.jpg-wh_50" />
vim /etc/rsyncd.conf #編輯設定檔
#[全域配置]# 伺服器IP和監聽連接埠號碼address = 10.10.6.15port = 873# 伺服器傳輸檔案時發給哪個使用者和哪個組來執行。pid = rsyncgid = rsync# 在檔案傳輸之前,伺服器守護進程將chroot到指定的PATH,優點是即時特殊的保護,缺點是需要roo# t許可權use chroot = no# 最大並發數max connection = 10# 逾時時間長度timeout = 300# 鎖、日誌和pid檔案位置lock file = /var/run/rsync.locklog file = /var/run/rsync.logpid file = /var/run/rsync.pid# 訊息檔案,當用戶端串連到伺服器是該檔案的內容將會顯示給用戶端motd file = /etc/rsyncd.mod# 存放虛擬使用者和密碼的檔案secrets file = /etc/rsyncd.passwd# 允許的網段hosts allow = *# 不允許的網段#hosts deny = 0.0.0.0/32# 是否允許客戶上傳檔案,true不允許,false允許。read only = false#[模組配置],所謂模組配置其實就是要使用的目錄,用戶端推送檔案到伺服器端的哪個目錄# 需要接收同步的目錄path = /usr/local/backup# 是否忽略錯誤ignore errorslist = false# 虛擬使用者,也就是用戶端用那個使用者來串連伺服器,可以用空格或者逗號分隔多個使用者,該使用者# 必須在上面secrets file = /etc/rsyncd.passwd檔案中auth users = rsync_backup# 該模組的描述,用戶端串連後會顯示給用戶端commment = hello
rsync可以以守護進程的方式運行,也可以由xinetd來啟用,如果你的伺服器負載比較高建議rsync以獨立的守護進程方式來運行。區別在於,如果以獨立的守護進程方式運行,它會一直監聽連接埠隨時準備接受檔案推送,如果由xinetd這個超級進程來管理的話,那沒有推送的時候rsync是休眠狀態,當有推送的時候,由xinetd這個超級進程啟用rsync,對於繁忙的伺服器來說這種方式會有額外開銷。
本文出自 “小惡魔的家” 部落格,請務必保留此出處http://littledevil.blog.51cto.com/9445436/1870338
CentOS 6.5 inotify+rsync 部署