使用lsync和rsync實現主備雙機檔案同步

2021-06-06 05:11:39 字數 3580 閱讀 1238

準備兩台linux主機,作業系統為ubuntu10.04:

一台作為rsync的服務端,假設ip為192.85.1.9.

一台作為rsync的客戶端,假設ip為192.85.1.112.

rsync

能夠實現檔案從客戶端指定目錄傳輸到服務端指定目錄

,但不監控和實時功能.

lsync採用

inotify

原理監聽某一目錄,如果目錄內發生增、刪、改、利用

rsync

協議自動同步到多個伺服器

.inotify

已併入

ubuntu

核心

.rsync

lsync

都可通過系統軟體包管理器安裝

,:

rsync

:lsync

:服務端不用安裝

lsync.

開啟/etc/rsyncd.conf檔案(若沒有則新建),輸入以下內容:

[data]

path =/usr/lib/oracle/xe/data

uid =root

gid =root

address= 192.85.1.112

logformat= %t %a %m %f %b

syslogfacility = local3

說明:

[data]是路徑別名,在配置客戶端lsync時用於替代目標路徑,即path,path是服務端存放同步檔案的目錄路徑,可以按需要修改.

uid,gid是目標目錄的所屬者,如果不設則預設為-2(nobody).

address指定監聽的ip,這個ip指客戶端位址,埠預設為873.

logformat指定日誌檔案格式.

syslogfacility

取決於rsync

的啟動方式

,daemon

方式則設為

local3.

客戶端rsync同樣需要在/etc/下新建rsyncd.conf檔案,但不用寫入任何東西.

配置lsync

配置檔案

lsyncd.conf.xml,

檔案位址可以用

locate

命令查詢.

下面是設定好的檔案內容:

logfile指定 lsyncd的日誌檔案.

binary指定rsync程式路徑.

callopts標籤下的子標籤都是設定呼叫rsync時使用的引數,具體引數函式可以參考附錄,%r會被替代成-r

directory指定目錄,其中source子標籤指定原始檔目,該目錄存放需要同步的檔案;target標籤指定rsync服務端位址和目標目錄路徑,data即服務端配置檔案中的內容

系統預設的內容有很多類似的行,

表示注釋資訊或關閉的配置項.

服務端:

終端輸入/usr/bin/rsync–-daemon –config=/etc/rsyncd.conf啟動rsync.

服務啟動後可用psauxf|grep 'rsync'檢視程序,若出現類似以下資訊則說明啟動成功:

客戶端:

終端輸入/usr/bin/rsync--daemon啟動rsync.

輸入/usr/bin/lsyncd--

conf/etc/

lsyncd.conf.xml

啟動lsync.

再在可以在客戶指定

可能出現的錯誤:

error: chroot failed

rsyncerror: error starting client-server protocol (code 5) at main.c(1522)[receiver=3.0.3]

原因:伺服器端的目錄不存在或無許可權,建立目錄並修正許可權可解決問題.

似乎沒有直接關閉的方法

,但能用

psaux

命令查出程序號,使用

kill

命令關閉程序 ps

aux:

kill2247

kill2281

rsync命令(

部分)-v,--verbose

詳細模式輸出

-q,--quiet

精簡輸出模式

-c,--checksum

開啟校驗開關,強制對檔案傳輸進行校驗

-a,--archive

歸檔模式,表示以遞迴方式傳輸檔案,並保持所有檔案屬性,等於

-rlptgod

-r,--recursive

對子目錄以遞迴模式處理

-r,--relative

使用相對路徑資訊

-b,--backup

建立備份,也就是對於目的已經存在有同樣的檔名時,將老的檔案重新命名為

~filename

。可以使用

--suffix

選項來指定不同的備份檔案字首。

--backup-dir

將備份檔案(如

~filename)

存放在在目錄下。

-l,--links

保留軟鏈結

-l,--copy-links

想對待常規檔案一樣處理軟鏈結

--delete

刪除那些

dst中

src沒有的檔案

--force

強制刪除目錄,即使不為空

--exclude=pattern

指定排除不需要傳輸的檔案模式

--include=pattern

指定不排除而需要傳輸的檔案模式

--exclude-from=file

排除file

中指定模式的檔案

--include-from=file

不排除file

指定模式匹配的檔案

--version

列印版本資訊

--address

繫結到特定的位址

--config=file

指定其他的配置檔案,不使用預設的

rsyncd.conf檔案

--port=port

指定其他的

rsync

服務埠

--blocking-io

對遠端shell

使用阻塞io

-stats

給出某些檔案的傳輸狀態

--progress

在傳輸時現實傳輸過程

--log-format=format

指定日誌檔案格式

--password-file=file

從file

中得到密碼

參考資料

scp和rsync的使用

scp的備份指南 需求 用scp自動完成異地檔案的定時copy 難點 如何讓異地主機建立安全的信任關係 1 在a機器上用root執行ssh keygen,將生成 root ssh identity和 root ssh identity.pub兩個檔案 2 在a機器上執行scp root ssh id...

使用rsync 實現程式上線部署

rsync是類unix系統下的資料映象備份工具,從軟體的命名上就可以看出來了 remote sync。安裝非常簡單 yum install rsync 即可 需要接收檔案的伺服器做配置 vi etc rsyncd.conf uid www data gid www data max connecti...

Rsync實現Linux Windows檔案同步

linux 為服務端,windows 為客戶端 一,服務端的配置 2,兩台伺服器的ip為 client 192.168.2.128 rsync的client端 server 192.168.2.35 rsync的server端 3 1 rsync的server端的操作 tar zxvf rsync ...