1. 程式人生 > >Rsync資料同步服務

Rsync資料同步服務

一、srync三種操作方式

 

1、本地間傳輸相當於cp命令

例1:將etc/hosts推送到/tmp下 rsync /etc/hosts /tmp 
【1.1】資料同步 
原始檔追加內容:echo “'hostname -I' www.yunjisuan.com”>> /etc/hosts 
【1.2】同步資料(只同步目標檔案沒有得內容)rsync /etc/hosts /tmp 
例2:目錄推送 
【2.1】將根下得bent目錄推送到/tmp下 rsync -avz /root/bent /tmp 
【2.1】刪除目標目錄比原目錄多於得資料 引數:--delete

 
刪除/tmp下多餘得資料,使目標目錄與原目錄完全一致。rsync -avz /root/bent /tmp/ --delete

 

特別提示:請注意以下兩條命令的差別:

【1】rsync -avz /opt/ /tmp/ 
【2】rsync -avz /opt /tmp/ 
/opt/的意思是,僅把/opt/目錄裡面的內容同步過來,opt目錄本身並不同步;而後者【2】中/opt表示把opt本身及其內部內容全都同步到/tmp下,僅一個/(斜線之差),意義大不相同,請同學們注意使用的差別。 
在後邊要講的通過遠端shell進行資料傳輸的內容也會有類似的問題,請牢記。

 

2、遠端傳輸

準備事項:要用多臺虛擬機器。需要裝遠端傳輸得外掛包也就是ssh得遠端支援包(如果本機有scp命令則支援遠端傳輸,如果沒有則需安裝openssh-clients)。必須知道對方root使用者得密碼。預設傳輸得是22埠,如果對方不是22埠,則需指定對方埠號進行遠端同步。遠端連線得配置檔案 /etc/ssh/sshd/config 
例1:將本地伺服器得資料推送到另一臺伺服器上 rsync -avz /root/bent [email protected]:/tmp 
說明: 
[email protected]表示對方伺服器得登入地址 
表示為指定對方伺服器得存放位置

 

3、多組伺服器之間,以socket程序得方式啟動rsync程序進行監聽

【3.1】連線原理:客戶端要告訴服務端兩點,1、要推送給配置檔案的哪個模組,服務端就會按照要求放在相應的位置。2、需要驗證每個模組下的使用者名稱和密碼。 
【3.2】操作流程---服務端設定

1、手動寫rsync得配置檔案,vim/etc/rsyncd.conf 
下圖為模板: 
image_1cr56jorcqa72au1lqqrdd1acl1g.png-47kB

uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[backup]
path = /backup/
ignore errors
read only = false
list=false
hosts allow = 192.168.200.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password


 2、建立共享目錄/backup
 3、新增程式使用者 useradd -M -s /sbin/nologin rsync
 4、啟動服務 rsync --daemon
 5、更改共享目錄的屬主 chown -R rsync.rsync /backup
 6、建立rsync虛擬賬號和密碼
 echo "rsync_backup:123456" >> /etc/rsync.password
 7、將賬號密碼檔案的許可權設定為600  chmod 600 /etc/rsync.psaaword
 8、加入開機自啟動 echo "rsync --daemon" >> /etc/rc.local
 9、關閉防火牆 service iptables stop

【3.3】操作流程---客戶端設定

1、建立密碼檔案 echo "123456" > /etc/rsync.password
2、設定密碼檔案許可權為600 chmod 600 /etc/srync.password
 

4、同步測試

【4.1】將客戶端指定目錄內容推送到伺服器端rsync指定目錄下  rsync -avzP /backup/ [email protected]::backup --password-file=/etc/rsync.password
命令說明:
-avz:保持穩健各項屬性不變,-v顯示同步資訊 -P顯示具體同步過程
/backup/:要推送的內容所在目錄
rsync_backup:伺服器端rsync服務的同步的使用者名稱(非Linux使用者)
192.168.197.129:rsync伺服器IP地址
backup:rsync伺服器配置檔案裡的模組名
--password-file=/etc/rsync.password:免密碼的操作,指定密碼檔案位置,如果不寫,則會要求使用者互動式輸入密碼。(如果想掛定時任務,必須得非互動式)

注意事項: 
1、遠端同步時需要關閉防火牆 service iptables stop 
2、重啟rsync服務的方法: 
【2.1】pkill rsync 關閉 
【2.2】rsync --daemon 啟動 
3、rsync的socket程序監聽873埠