rsync inotify實現實時同步

2021-09-20 15:52:46 字數 4180 閱讀 4850

服務端:

一、首先安裝rsync,接著編輯配置檔案,若沒有,自己手動建立也可

rsync、xinetd (rsync最好是3.0以上版本,演算法更優,速度更快.xinetd 監控管理rsync服務)

/etc/rsyncd.conf

uid = www

gid = www

use chroot = no

max connections = 200

timeout = 600

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

log file = /var/log/rsyncd.log

[web]

path = /var/www/html/

ignore errors

read only = no

list = no

hosts allow = 192.168.72.0/24

auth users = rsync

secrets file = /etc/rsyncd.password

編輯 /etc/xinetd.d/rsync 配置(若沒有可以自己手動寫,格式要對,否則服務起不來)

cat /etc/xinetd.d/rsync 

service rsync

把yes 改為 no

useradd -r rsync (配置檔案中指定的使用者,若沒有的話,手動新增乙個系統使用者即可)

systemctl restart xinetd.service

檢視埠是否被啟動(預設873)

lsof -i:873

command  pid user   fd   type device size/off node name

xinetd  6830 root    5u  ipv6  53674      0t0  tcp *:rsync (listen)

二、修改許可權

建立使用者認證檔案 (自己手動建立)

echo "rsync:password" > /etc/rsyncd.password

修改認證檔案許可權,安全起見

chmod 600 /etc/rsyncd.password

客戶端:

這裡只需要密碼即可,不需要使用者,免得要同步時,還要進行手動互動,許可權一樣為600

echo "password" > /etc/rsyncd.password

chmod 600 /etc/rsyncd.password

執行命令

三、服務端安裝inotify

tar -xvf inotify-tools-3.13.tar.gz

cd inotify-tools-3.13

./configure

make -j $cpu

make install

修改核心引數

sysctl -a | grep inotify

fs.inotify.max_queued_events = 16384   表示監控事件佇列

fs.inotify.max_user_instances = 128   表示最多監控例項數

fs.inotify.max_user_watches = 900000    表示每個例項最多監控檔案數

sysctl -a | grep inotify >> /etc/sysctl.conf  寫進系統檔案中

sysctl -p   重新讀取配置

inotify常用引數及配置

inotifywait -h

-e 用來指定要監控哪些事件

這些事件包括:create建立,move移動,delete刪除,modify修改檔案內容,attrib屬性更改。

-m 表示持續監控

-r 表示遞迴整個目錄

-q 表示簡化輸出資訊

inotifywait -mrq -e create,move,delete,modify /path/filename  回車後會卡著不動,然後在另乙個終端給/path/filename目錄下讀,寫,改,刪的動作時,便會觸發它的機制

寫個指令碼來讓它監控到動作

chmod 600 /etc/rsyncd.shadow(必須是600或更小許可權,否則會報錯)

error: password file must not be other-accessible

客戶端配置rsync

useradd -r www 同步檔案擁有人使用者

useradd -r rsync 認證使用者

echo "rsync:rsync-passwd" > /etc/rsync.pass 使用者、密碼

cat /etc/rsyncd.password 密碼認證檔案 rsync命令同時時使用

rsync:rsync-passwd

mkdir /var/www/html/www.rsync-server.com -p 建立同步服務端給客戶端同步的目錄

rsync配置

cat /etc/rsyncd.conf

uid = www

gid = www

use chroot = no

max connections = 200

timeout = 600

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

log file = /var/log/rsyncd.log

[rsync-client]

path = /var/www/html/www.rsync-server.com

ignore errors

read only = no

list = no

hosts allow = 192.168.72.0/24

auth users = rsync

secrets file = /etc/rsyncd.password

xinetd 配置

cat /etc/xinetd.d/rsync 

service rsync

systemctl restart xinetd

cat /etc/rsyncd.shadow 

rsync-passwd

檢視埠啟用狀態

lsof -i:873

command  pid user   fd   type device size/off node name

xinetd  6469 root    5u  ipv6  52078      0t0  tcp *:rsync (listen)

服務端執行指令碼

nohup ./rsync+inotify.sh & 並在/var/www/html/www.rsync-server.com/目錄中隨意建立,修改或刪除檔案,在客戶端檢視時,也會隨之自動與服務端一樣建立,修改或刪除檔案

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...

rsync inotify實現實時單向同步

源伺服器 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 ...