linux下rsync inotify同步檔案

2021-07-11 11:37:48 字數 3538 閱讀 5763

inotify進行對伺服器檔案監聽,一旦檢測到有改動則發起同步rsync伺服器檔案到客戶端

1)# tar zxvf rsync-3.0.6.tar.gz

2)# cd rsync-3.0.6

3)# ./configure  

4)# make 

5)# make install

在/etc/目錄下新建rsyncd.conf檔案,其中配置資訊如下:

uid = root

gid = root

use chroot = no

max connections = 4

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

[backup]

path = /data/test #同步的目錄位址

ignore errors

read only = no

list = no

auth users = rsync #同步該模組時使用者名稱 需要與rsync.pass檔案下的使用者名稱保持一致即可

secrets file = /etc/rsync.pass

更改rsync.pass的檔案許可權

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

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

檢視是否啟動成功

[root@localhost /]# cd /

[root@localhost /]# lsof -i:873

command   pid user   fd   type device size/off node name

rsync   56860 root    4u  ipv4 134802      0t0  tcp *:rsync (listen)

rsync   56860 root    5u  ipv6 134803      0t0  tcp *:rsync (listen)

rsync.conf的配置檔案和主伺服器配置一致,只是rsync.pass檔案內容為

rsync:123456

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

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

待兩台rsync服務都啟動,可以先測試一波是否能夠達到同步

[root@localhost /]#rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pass  /data/test/  [email protected]::backup

以上命令是伺服器端跟新後同步到客服端(將主伺服器的/data/test目錄下的檔案同步到192.168.13.131的backup模組中配置的path下

)[root@localhost srv]# rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pass  /data/test/  [email protected]::backup

sending incremental file list

./aaa

9 100%    0.00kb/s    0:00:00 (xfer#1, to-check=6/8)

ccc8 100%    7.81kb/s    0:00:00 (xfer#2, to-check=5/8)

ddddd

4 100%    3.91kb/s    0:00:00 (xfer#3, to-check=4/8)

dsaddsad

4 100%    3.91kb/s    0:00:00 (xfer#4, to-check=3/8)

fds5 100%    4.88kb/s    0:00:00 (xfer#5, to-check=2/8)

fdsf

4 100%    3.91kb/s    0:00:00 (xfer#6, to-check=1/8)

nnn5 100%    4.88kb/s    0:00:00 (xfer#7, to-check=0/8)

sent 447 bytes  received 144 bytes  394.00 bytes/sec

total size is 39  speedup is 0.07

[root@localhost srv]# 

出現以上資訊則代表同步成功

用inotify-tool來檢測主伺服器的檔案目錄,如果有改動則直接觸發同步伺服器和客戶端的檔案,該inoty

# wget

# tar xzvf inotify-tools-3.14.tar.gz

# cd inotify-tools-3.13

# ./configure

--prefix=/usr/local/inotify

# make

# make install

#vi /srv/rsync.sh  指令碼內容如下

#!/bin/bash

src=/data/test/ #監視改檔案路徑,資料夾內容發生改變觸發伺服器資料同步

des=backup #客服端配置的模組(客服端會介紹)

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %h:%m' --format '%t %w%f' -e modify,delete,create,attrib $src | while read files #這邊要主要下inotifywait,只有linux 2.6.13 或更高版的才會相容

do for hostip in $host

do #rsync -vzrtopg --delete --progress rsync@$hostip::$des $src --password-file=/etc/rsync.pass 該命令是客服端跟新後同步到伺服器端

rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pass $src rsync@$hostip::$des #改命令是伺服器端跟新後同步到客服端(看具體使用情況選擇)

#--password-file=/etc/rsync.pass 配置到客服端,也就是客戶端路徑下有rsync.pas 用於配置登陸密碼

#rsync 是客戶端配置的登陸名

done

echo "$ was rsynced" >>/tmp/rsync.log 2>&1 #生成日誌檔案

done

#nohup /bin/bash /srv/rsync.sh &  //後台不結束通話地執行命令

#echo "nohup /bin/bash /root/bin/rsync.sh &" >> /etc/rc.local //設定linux伺服器啟動自動啟動nohup

Linux下Redis下安裝

redis安裝 檢查是否安裝redis ps ef grep redis2.檢查gcc服務是否安裝成功 rpm qa grep gcc注 安裝成功則顯示 mkdir redis5.解壓redis安裝包 tar zxvf redis 2.8.17 tar.gz c usr local redis 解壓...

Linux下程式設計

windows下我的環境為 windows10 vs2015 opencv3.4.0 opencv3.4.0 contrib python linux下我的環境為 ubuntu16004 也有ubuntu1804 opencv3.4.0 opencv3.4.0 contrib python gnu ...

linux下萬用字元

萬用字元是一類鍵盤字元,有星號 和問號 當查詢檔案呀資料夾時,可以使用它來代替乙個或多個真正字元 當不知道真正字元或者不想建入完整名字時,常常使用萬用字元代替乙個或多個真正字元。星號 可以使用星號代替0個或多個字元。如果正在查詢以aew開頭的乙個檔案,但不記得檔名其餘部分,可以輸入aew,查詢以ae...