服務(wù)器維護(hù)Rsync實(shí)現(xiàn)文件的同步
2020-07-06 21:11 作者:admin
服務(wù)器維護(hù)小知識(shí)故事背景:我們公司是做新零售的,需要對(duì)發(fā)布的每臺(tái)機(jī)器進(jìn)行文件的同步更新,所以我這里做了一個(gè)小小的調(diào)研
服務(wù)器維護(hù)小知識(shí)技術(shù)調(diào)研:Linux之間同步文件有兩種方式rsync與scp。
sync和scp在文件夾均不存在時(shí),執(zhí)行時(shí)間相差不大,但是文件夾存在的情況下差異很大。原因是scp是復(fù)制:若mas2文件不存在則新建,若存在則覆蓋,若mas2上有而Dashboard主機(jī)沒有,則不改變。可以理解為scp為“復(fù)制”。而rsync則在文件在存在于兩主機(jī)時(shí),比較兩文件是夠相同,相同的話,就什么都不做,若存在差異就直接更新。
服務(wù)器維護(hù)小知識(shí)簡單的說rsync只對(duì)差異文件做更新。
#### Rsync介紹
rsync是一款開源的備份工具,可以再不同主機(jī)之間進(jìn)行同步,實(shí)現(xiàn)全量和增量備份,適用于集中備份或異地備份等應(yīng)用場景。
rsync監(jiān)聽端口:873
rsync運(yùn)行模式:C/S
#### Rsync傳輸模式
- 本地模式
本地傳輸,主機(jī)內(nèi)部進(jìn)行數(shù)據(jù)傳輸(類似于cp命令)
- 遠(yuǎn)程模式
遠(yuǎn)程通道傳輸,通過ssh通道傳輸數(shù)據(jù)(類似scp命令)
- 守護(hù)進(jìn)程模式
守護(hù)進(jìn)程傳輸,不使用系統(tǒng)用戶進(jìn)行傳輸(安全性高)
#### Rsync命令參數(shù)
-a 復(fù)制各種類型的文件(相當(dāng)于-tropgDl)
-v 顯示傳輸過程
-z 傳輸時(shí)進(jìn)行壓縮
-r 遞歸傳輸目錄和子目錄
-t 保持文件時(shí)間不變
-o 保持文件屬主信息
-g 保持文件屬組信息
-p 保持文件權(quán)限
-l 保持軟連接
-P 顯示同步進(jìn)度及過程
-D 保持設(shè)備文件信息
--bwlimit=100 限速傳輸
--delete 源和目標(biāo)數(shù)據(jù)保持一致
--partial 斷點(diǎn)續(xù)傳
#### 安裝rsync
`sudo apt-get install`一般機(jī)器好像都有
#### 服務(wù)端
服務(wù)器維護(hù)小知識(shí)1. 創(chuàng)建rsyncd.conf配置文件,sudo vim /etc/rsyncd.conf
`uid = ai #運(yùn)行進(jìn)程用戶
gid = ai #運(yùn)行用戶組
port = 873 #監(jiān)聽端口
fake super = yes #無需rsync以root身份運(yùn)行,允許接受數(shù)據(jù)
use chroot = no #禁錮推送數(shù)據(jù)至某個(gè)目錄
max connections = 0 #最大連接數(shù)
timeout = 600 #超時(shí)時(shí)間
log file = /var/log/rsyncd.log #定義日志文件路徑
#####################################
[backup] #模塊名稱
path = /backup #定義接收備份數(shù)據(jù)目錄
ignore errors #忽略錯(cuò)誤信息
read only = false #對(duì)備份數(shù)據(jù)可讀寫
list = false #不允許查看模塊信息
auth users = test #定義虛擬用戶,認(rèn)證使用
secrets file = /etc/rsync.passwd #認(rèn)證密碼路徑`
服務(wù)器維護(hù)小知識(shí)2. 創(chuàng)建rsync.passwd
`echo "test:123456" > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd 不然傳輸會(huì)報(bào)錯(cuò)`
服務(wù)器維護(hù)小知識(shí)3. 啟動(dòng)rsync
`rsync --daemon`
#### 客戶端
服務(wù)器維護(hù)小知識(shí)1. 創(chuàng)建rsync.passwd
`echo "123456" > /etc/rsync.password
chmod 600 /etc/rsync.password 不然傳輸會(huì)報(bào)錯(cuò)`
#### 實(shí)例(拉取)
`rsync -avz [email protected]::backup --password-file=/etc/rsyncd.password /tmp/backup/`
#### 定時(shí)拉取
把拉取指令配置在客戶端crontab即可
IT運(yùn)維 我們選擇北京艾銻無限
以上文章由北京艾銻無限科技發(fā)展有限公司整理