rsync inotify實現實時單向同步

2021-09-24 11:46:36 字數 2838 閱讀 4713

源伺服器          10.13.114.16

目標伺服器        10.13.114.17

目的:實現源伺服器10.13.114.16 /home/admin/www/資料夾檔案實時同步到目標伺服器10.13.114.17 的/home/admin/www目錄下

第一步:源伺服器端安裝rsync

wget -o /etc/yum.repos.d/centos-base.repo

yum -y install vim-enhanced

wget

tar -zxvf rsync-3.0.8.tar.gz

cd rsync-3.0.8

./configure --prefix=/usr/local/rsync --disable-ipv6

make && make install

cd /usr/local/rsync/

mkdir etc

mkdir var

vim /usr/local/rsync/etc/rsyncd.conf

log file = /usr/local/rsync/var/rsyncd.log 

pid file = /usr/local/rsync/var/rsyncd.pid 

lock file = /usr/local/rsync/var/rsyncd.lock 

#secrets file = /usr/local/rsync/etc/rsyncd.pas 

motd file = /usr/local/rsync/etc/rsyncd.motd 

hosts allow = 10.13.114.17/32 

list = yes

uid = root

gid = root

use chroot = no

max connections = 30

[www] 

path = /home/admin/www 

comment = bakup www 

read only = no

auth users = admin

vim /usr/local/rsync/etc/rsyncd.motd

welcome 

這是歡迎詞,可以不設定

在服務端和客戶端都建立admin使用者,用於同步

useradd admin

在源端生成公鑰,拷貝到目標段,實現免密碼登入

ssh-keygen -t rsa

拷貝.ssh/id_rsa.pub到伺服器端的.ssh/authorized_keys檔案中

然後設定許可權為

在目標段執行

#chmod 600 .ssh/authorized_keys

啟動源的rsync服務

rsync --daemon --config=/usr/local/rsync/etc/rsyncd.conf

檢視ps -ef |grep rsync

埠為873

第二步:源伺服器端安裝inotify

wget

tar -zxvf inotify-tools-3.13.tar.gz

cd inotify-tools-3.13

./configure --prefix=/usr/local/inotify

make && make install

cd /usr/local/inotify/bin

#!/bin/sh 

src=/home/admin/www 

[email protected]:/home/admin 

/usr/local/inotify/bin/inotifywait -mrq -e modify,delete,create,attrib $ | while read status 

do su - admin -c "/usr/bin/rsync  -ahqzt  --delete  $src $dst" 

echo "`date +'%y-%m-%d %h:%m:%s'`  $ has rsynced" >

>rsync.log 

done 

啟動monitor.sh

#chmod +x monitor.sh

#./monitor.sh &

可以放到rc.local實現開機啟動

cat "/usr/local/inotify/bin/monitor.sh &" >> /etc/rc.local

然後在源端的/home/admin/www下建立刪除檔案,都會同步到目標端

注釋:/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib $

-m 是保持一直監聽

-r 是遞迴檢視目錄

-q 是列印出事件

-e create,move,delete,modify,attrib 是指 「監聽 建立 移動 刪除 寫入 許可權」 事件

/usr/bin/rsync -ahqzt --delete $src $dst

-a 存檔模式

-h 儲存硬連線

-q 制止非錯誤資訊

-z 壓縮檔案資料在傳輸

-t 維護修改時間

-delete 刪除於多餘檔案

rsync的完整引數說明:

要排除同步某個目錄時,為rsync新增--exculde=pattern引數,注意,路徑是相對路徑,具體檢視man rsync。

要排除某個目錄的事件監聽的處理時,為inotifywait新增--exclude或--excludei引數,具體檢視man inotifywait。

rsync inotify實現實時同步

服務端 一 首先安裝rsync,接著編輯配置檔案,若沒有,自己手動建立也可 rsync xinetd rsync最好是3.0以上版本,演算法更優,速度更快.xinetd 監控管理rsync服務 etc rsyncd.conf uid www gid www use chroot no max con...

rsync inotify實現實時同步

一 rsync基本操作 rsync常用選項 n 測試同步過程,不做實際修改 delete 刪除目標資料夾內多餘的文件 a 歸檔模式,相當於 rlptgod v 顯示詳細操作資訊 z 傳輸過程中啟用壓縮 解壓 用法 rsync 選項 本地目錄1 本地目錄2 rsync 選項 本地目錄1 本地目錄2 r...

rsync inotify 實現實時同步

inotify 這個可以監控檔案系統中的新增,修改,刪除,移動等事件 inotify的特性需要linux核心2.6.13以上的支援 root test1 inotify tools 3.13 uname r 2.6.32 71 el6.i686 支援 還需要看看是否安裝了inotify root t...