028 rync和inotify實現實時備份

2021-09-07 15:00:28 字數 2265 閱讀 9367

一、服務節點安裝inotify-tools。

確保系統後以下輸出=>

[root@***x]# ll /proc/sys/fs/inotify/

total 0

-rw-r--r-- 1 root root 0 aug 23 20:02 max_queued_events

-rw-r--r-- 1 root root 0 aug 23 20:02 max_user_instances

-rw-r--r-- 1 root root 0 aug 23 20:02 max_user_watches

(1)yum -y install inotify-tools.x86_64

(2)配置server端的inotify監測指令碼

<1>cat /opt/zkrsync/rsyncfile.sh

#!/bin/bash

host_pubbak=10.0.138.136

src=/data/zookeeper

dest_pubbak=zkpub

user=root

/bin/inotifywait -mrq --timefmt '%d/%m/%y %h:%m' --format '%t %w%f%e' -e close_write,delete,create,attrib $src \

| while read file

do/bin/rsync -vzrtopg --delete --progress $src $user@$host_pubbak::$dest_pubbak

echo "$ $ was rsynced" >> /tmp/rsync.log 2>&1

done

sh /opt/zkrsync/rsyncfile.sh &

<2>supervisord配置

cat /etc/supervisord.d/rsync.ini

[program:rsync]

command=/opt/zkrsync/rsyncfile.sh

startsecs=3

startretries=3

stopsignal=quit

stopasgroup=true

stopwaitsecs=10

user=root

redirect_stderr=true

stdout_logfile=/data/log/rsync/running.log

stdout_logfile_maxbytes=50mb

stdout_logfile_backups=10

stderr_logfile=/data/log/rsync/error.log

stderr_logfile_maxbytes=50mb

stderr_logfile_backups=10

二、客戶端

(1)rsync配置檔案設定

cat /etc/rsyncd.conf

uid = root

gid = root

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

[zkpub]

path = /tmp

comment = zk transaction log trans

read only = no

hosts allow = 10.0.138.152 #server端ip

hosts deny = *

(2)啟動rsync程序服務

rsync --daemon --config=/etc/rsyncd.conf -v

三、 測試

向這個目錄"/tmp/test"進行檔案的增刪改查操作,日誌樣例如下:

sending incremental file list

test/

deleting test/wuwu

sent 40 bytes received 12 bytes 104.00 bytes/sec

total size is 0 speedup is 0.00

sending incremental file list

test/

test/iiii

5 100% 0.00kb/s 0:00:00 (xfer#1, to-check=0/2)

測試ok沒有問題。

Linux 用inotify監聽檔案和目錄

日常應用中,常常會遇到以下場景,監控資料夾a,若資料夾中的b檔案發生變化,則執行c命令。linux下可以通過inotify完成該功能。自從linux kernel 2.6.13起,inotify以作為核心的一部份,同時需要glibc 2.4以上版本。1.相關函式 inotify init 建立乙個i...

inotify實時同步工具理論和實戰

inotify服務 當使用者在a伺服器上操作了資料,inotify 會抓取出來,然後通知 rsync 然後同步到 rsync 伺服器。所以 inotify 伺服器卻是 rsync 的客戶端伺服器。inotify效能比 sersync 強,inotify 可能支援幾百個,sersync 可能一百所以就...

inotify和epoll結合使用的小例子

個人能力有限,文中有不當和錯誤給您帶來的不便還請諒解。用inotify可以檢測檔案系統中檔案和目錄發生的變化,而epoll可以同時檢測多個檔案。這裡將epoll和inotify結合起來使用,測試這樣一種情況 指定相應目錄,當目錄中有檔案建立或者刪除時有相應的通知資訊並把檔案新增或者移除epoll的檢...