文件同步rsync

rsync介紹

我們經(jīng)常需要在不同目錄或者服務(wù)器之間做文件同步和更新,LINUX提供了很多內(nèi)置命令可以使用比如SCP等等,但是今天我們介紹一個(gè)更加強(qiáng)大的工具rsync。rsync命令是一個(gè)遠(yuǎn)程同步工具,可以通過(guò)LAN\WAN快速同步多臺(tái)主機(jī)間的文件,它使用的就是rsync算法達(dá)到本地和遠(yuǎn)程兩個(gè)主機(jī)之間文件同步,該算法是增量算法,即只同步兩個(gè)文件的不同部分,而不是每次同步整個(gè)文件,所以速度是相當(dāng)快

一. 同步源

1. 基于SSH的同步源

setfacl
rsync -avz 用戶(hù)名@服務(wù)器地址:/服務(wù)器目錄/*  /本地目錄/

2. 基于RSYNC的同步源

/etc/rsyncd.conf
/etc/rsyncd_users.db    權(quán)限為600

上行同步時(shí),read only = no  且 nobody需要有寫(xiě)入權(quán)限

/etc/rsyncd.conf文件:

address = 192.168.0.198
port 873
pid file = /var/run/rsyncd.pid
log file = /var/log/rsync.log

[share]
        comment = soft
        path = /server/rsync
        read only = no
        dont compress = *.gz *.bz *.bz2 *.zip
        auth users = wang
        secrets file = /etc/rsyncd_users.db

對(duì)rsyncd.conf文件選項(xiàng)個(gè)別解釋?zhuān)ㄉ厦嬗械臎](méi)有寫(xiě)):

uid 指定當(dāng)前模塊傳輸文件時(shí)的守護(hù)進(jìn)程應(yīng)該具有的用戶(hù)ID,默認(rèn)是"nobody"
gid 指定當(dāng)前模塊傳輸文件時(shí)守護(hù)進(jìn)程應(yīng)該具有的用戶(hù)組ID,默認(rèn)是"nobody"
max_connections 指定模塊的最大并發(fā)連接數(shù)量,以保護(hù)服務(wù)器超過(guò)限制的連接請(qǐng)求,將被暫時(shí)限制。默認(rèn)是0,也就是沒(méi)有限制。

/etc/rsyncd_users.db文件格式為: wang:123456
啟動(dòng)rsync守護(hù)進(jìn)程:/usr/bin/rsync --daemon

權(quán)限: 服務(wù)權(quán)限 --> 用戶(hù)權(quán)限,即只有服務(wù)權(quán)限還不行,必須還要有用戶(hù)權(quán)限

rsync命令的用法:
基本格式: rsync [選項(xiàng)] 原始位置 目標(biāo)位置

rsync的命令格式可以為:
  1. rsync [OPTION]... SRC [SRC]... DEST
  2. rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
  3. rsync [OPTION]... [USER@]HOST:SRC DEST
  4. rsync [OPTION]... [USER@]HOST::SRC [DEST]
  5. rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
  6. rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
  rsync有六種不同的工作模式:
  1. 拷貝本地文件;當(dāng)SRC和DES路徑信息都不包含有單個(gè)冒號(hào)":"分隔符時(shí)就啟動(dòng)這種工作模式。
  2.使用一個(gè)遠(yuǎn)程shell程序(如rsh、ssh)來(lái)實(shí)現(xiàn)將本地機(jī)器的內(nèi)容拷貝到遠(yuǎn)程機(jī)器。當(dāng)DST路徑地址包含單個(gè)冒號(hào)":"分隔符時(shí)啟動(dòng)該模式。
  3.使用一個(gè)遠(yuǎn)程shell程序(如rsh、ssh)來(lái)實(shí)現(xiàn)將遠(yuǎn)程機(jī)器的內(nèi)容拷貝到本地機(jī)器。當(dāng)SRC地址路徑包含單個(gè)冒號(hào)":"分隔符時(shí)啟動(dòng)該模式。
  4. 從遠(yuǎn)程rsync服務(wù)器中拷貝文件到本地機(jī)。當(dāng)SRC路徑信息包含"::"分隔符時(shí)啟動(dòng)該模式。
  5. 從本地機(jī)器拷貝文件到遠(yuǎn)程rsync服務(wù)器中。當(dāng)DST路徑信息包含"::"分隔符時(shí)啟該模式。
  6. 列遠(yuǎn)程機(jī)的文件列表。這類(lèi)似于rsync傳輸,不過(guò)只要在命令中省略掉本地機(jī)信種工作模式。

常用選項(xiàng):
-a :歸檔模式,遞歸并保留對(duì)象屬性,等同于 -rlptgoD
-v : 顯示同步過(guò)程的詳細(xì)(verbose)信息
-z : 在傳輸文件時(shí)進(jìn)行壓縮(compress)
-H : 保留硬連接文件
-A : 保留ACL屬性信息
--delete : 刪除目標(biāo)位置有而原始位置沒(méi)有的文件
--timeout : 指定超時(shí)時(shí)間
--progress : 顯示備份過(guò)程
--port :指定rsync服務(wù)端口
--password-file :指定客戶(hù)端的密碼文件

-a ::
-r : 遞歸模式,包含文件目錄及子目錄中所有文件
-l : 對(duì)于符號(hào)鏈接文件仍然復(fù)制為符號(hào)鏈接文件
-p : 保留文件的權(quán)限標(biāo)記
-t : 保留文件的時(shí)間標(biāo)記
-g : 保留文件的屬組標(biāo)記(僅超級(jí)用戶(hù)使用)
-o : 保留文件的屬主標(biāo)記(僅超級(jí)用戶(hù)使用)
-D : 保留設(shè)備文件及其他特殊文件

二. 實(shí)時(shí)同步

免密碼驗(yàn)證
1. 基于SSH的同步源
  通過(guò)秘鑰對(duì)實(shí)現(xiàn)
2. 基于RSYNC同步源
  通過(guò)系統(tǒng)變量實(shí)現(xiàn),export RSYNC_PASSWORD=123456

實(shí)時(shí)同步 inotify+rsync

1. 安裝inotify-tools輔助工具
  inotifywait :用于持續(xù)監(jiān)控,實(shí)時(shí)輸出結(jié)果
  inotifywatch :用于短期監(jiān)控,任務(wù)完成后再出結(jié)果

inotifywait -mrq -e create,delete /server/rsync
m:持續(xù)監(jiān)控 r:遞歸監(jiān)控 即:監(jiān)控目錄及其子目錄的內(nèi)容
q:簡(jiǎn)化輸出

2.首先實(shí)現(xiàn)免密碼驗(yàn)證,在執(zhí)行下面的腳本文件

#!/bin/bash
a="/usr/local/bin/inotifywait -mrq -e create,delete /tmp/test1"
b="/usr/bin/rsync -avz /tmp/test1/* user1@192.168.0.162:/tmp/test2/"
$a | while read directory event file   
do
        $b
done

三. 雙向同步inotify+unison

windows使用rsync:

參考文章:https://www.cnblogs.com/janas/p/3321087.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 4層負(fù)載均衡和7層負(fù)載均衡的區(qū)別。A、rsync的安裝;軟件包安裝# yum install rsync 注...
    米開(kāi)朗基樂(lè)閱讀 3,700評(píng)論 0 1
  • 測(cè)試環(huán)境: rsync-server:192.168.1.132 rsync-client:192.168.1.2...
    lailai900201閱讀 2,384評(píng)論 0 10
  • rsync 遠(yuǎn)程同步rsync(remote sync) 備份 rsync 優(yōu)點(diǎn): 支持增量備份選擇性保持:符號(hào)鏈...
    若與閱讀 1,804評(píng)論 0 5
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,923評(píng)論 18 139
  • Rsync遠(yuǎn)程文件同步工具 它在同步文件的同時(shí),可以保持原來(lái)文件的權(quán)限、時(shí)間、軟硬鏈接等附加信息。 rsync...
    小杰哥丶閱讀 481評(píng)論 0 4