日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

rsync+inotify实现文件时时单项同步

發(fā)布時(shí)間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rsync+inotify实现文件时时单项同步 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?源服務(wù)器??????????10.13.114.16

目標(biāo)服務(wù)器????????10.13.114.17
目的:實(shí)現(xiàn)源服務(wù)器10.13.114.16?/home/admin/www/文件夾文件實(shí)時(shí)同步到目標(biāo)服務(wù)器10.13.114.17?/home/admin/www目錄下

第一步:源服務(wù)器端安裝rsync
wget?http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo?-O?/etc/yum.repos.d/CentOS-Base.repo
yum?-y?install?vim-enhanced

wget?http://www.samba.org/ftp/rsync/rsync-3.0.8.tar.gz
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

1?log?file?=?/usr/local/rsync/var/rsyncd.Log?

2?pid?file?=?/usr/local/rsync/var/rsyncd.Pid?

3?lock?file?=?/usr/local/rsync/var/rsyncd.Lock?

4?#secrets?file?=?/usr/local/rsync/etc/rsyncd.Pas?

5?motd?file?=?/usr/local/rsync/etc/rsyncd.Motd?

6?hosts?allow?=?10.13.114.17/32?

7?list?=?yes?

8?uid?=?root?

9?gid?=?root?

10?use?chroot?=?no?

11?max?connections?=?30?

12?[www]?

13?path?=?/home/admin/www?

14?comment?=?bakup?www?

15?read?only?=?no?

16?auth?users?=?admin?

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

?

17?welcome?

這是歡迎詞,可以不設(shè)置


在服務(wù)端和客戶端都創(chuàng)建admin用戶,用于同步
useradd?admin

在源端生成公鑰,拷貝到目標(biāo)段,實(shí)現(xiàn)免密碼登錄
ssh-keygen?-t?rsa
拷貝.ssh/id_rsa.pub到服務(wù)器端的.ssh/authorized_keys文件中
然后設(shè)置權(quán)限為
在目標(biāo)段執(zhí)行

#chmod?600?.ssh/authorized_keys



啟動(dòng)源的rsync服務(wù)

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

查看
ps?-ef?|grep?rsync
端口為873

第二步:源服務(wù)器端安裝inotify

wget?http://sourceforge.net/projects/inotify-tools/files/inotify-tools/3.13/inotify-tools-3.13.tar.gz/download
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

18?#!/bin/sh?

19?SRC=/home/admin/www?

20?DST=admin@10.13.114.17:/home/admin?

21??

22?/usr/local/inotify/bin/inotifywait?-mrq?-e?modify,delete,create,attrib?${SRC}?|?while?read?status?

23?do?

24?????su?-?admin?-c?"/usr/bin/rsync??-ahqzt??--delete??$SRC?$DST"?

25?????echo?"`date?+'%Y-%m-%d?%H:%M:%S'`??${status}?has?rsynced"?>>rsync.log?

26?done?


啟動(dòng)monitor.sh

#chmod?+x?monitor.sh

#./monitor.sh?&

可以放到rc.local實(shí)現(xiàn)開機(jī)啟動(dòng)

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

然后在源端的/home/admin/www下創(chuàng)建刪除文件,都會(huì)同步到目標(biāo)端

注釋:

/usr/local/bin/inotifywait?-mrq?-e?modify,delete,create,attrib?${src}
-m?是保持一直監(jiān)聽
-r?是遞歸查看目錄
-q?是打印出事件
-e?create,move,delete,modify,attrib?是指?監(jiān)聽?創(chuàng)建?移動(dòng)?刪除?寫入?權(quán)限”?事件

/usr/bin/rsync?-ahqzt?--delete?$SRC?$DST
-a?存檔模式
-h?保存硬連接
-q?制止非錯(cuò)誤信息
-z?壓縮文件數(shù)據(jù)在傳輸
-t?維護(hù)修改時(shí)間
-delete?刪除于多余文件

rsync的完整參數(shù)說明:

-v,?--verbose?詳細(xì)模式輸出
-q,?--quiet?精簡(jiǎn)輸出模式
-c,?--checksum?打開校驗(yàn)開關(guān),強(qiáng)制對(duì)文件傳輸進(jìn)行校驗(yàn)
-a,?--archive?歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于-rlptgoD
-r,?--recursive?對(duì)子目錄以遞歸模式處理
-R,?--relative?使用相對(duì)路徑信息
-b,?--backup?創(chuàng)建備份,也就是對(duì)于目的已經(jīng)存在有同樣的文件名時(shí),將老的文件重新命名為~filename。可以使用--suffix選項(xiàng)來指定不同的備份文件前綴。
--backup-dir?將備份文件(~filename)存放在在目錄下。
-suffix=SUFFIX?定義備份文件前綴
-u,?--update?僅僅進(jìn)行更新,也就是跳過所有已經(jīng)存在于DST,并且文件時(shí)間晚于要備份的文件。(不覆蓋更新的文件)
-l,?--links?保留軟鏈結(jié)
-L,?--copy-links?想對(duì)待常規(guī)文件一樣處理軟鏈結(jié)
--copy-unsafe-links?僅僅拷貝指向SRC路徑目錄樹以外的鏈結(jié)
--safe-links?忽略指向SRC路徑目錄樹以外的鏈結(jié)
-H,?--hard-links?保留硬鏈結(jié)
-p,?--perms?保持文件權(quán)限
-o,?--owner?保持文件屬主信息
-g,?--group?保持文件屬組信息
-D,?--devices?保持設(shè)備文件信息
-t,?--times?保持文件時(shí)間信息
-S,?--sparse?對(duì)稀疏文件進(jìn)行特殊處理以節(jié)省DST的空間
-n,?--dry-run現(xiàn)實(shí)哪些文件將被傳輸
-W,?--whole-file?拷貝文件,不進(jìn)行增量檢測(cè)
-x,?--one-file-system?不要跨越文件系統(tǒng)邊界
-B,?--block-size=SIZE?檢驗(yàn)算法使用的塊尺寸,默認(rèn)是700字節(jié)
-e,?--rsh=COMMAND?指定使用rshssh方式進(jìn)行數(shù)據(jù)同步
--rsync-path=PATH?指定遠(yuǎn)程服務(wù)器上的rsync命令所在路徑信息
-C,?--cvs-exclude?使用和CVS一樣的方法自動(dòng)忽略文件,用來排除那些不希望傳輸?shù)奈募?/font>
--existing?僅僅更新那些已經(jīng)存在于DST的文件,而不備份那些新創(chuàng)建的文件
--delete?刪除那些DSTSRC沒有的文件
--delete-excluded?同樣刪除接收端那些被該選項(xiàng)指定排除的文件
--delete-after?傳輸結(jié)束以后再刪除
--ignore-errors?及時(shí)出現(xiàn)IO錯(cuò)誤也進(jìn)行刪除
--max-delete=NUM?最多刪除NUM個(gè)文件
--partial?保留那些因故沒有完全傳輸?shù)奈募?#xff0c;以是加快隨后的再次傳輸
--force?強(qiáng)制刪除目錄,即使不為空
--numeric-ids?不將數(shù)字的用戶和組ID匹配為用戶名和組名
--timeout=TIME?IP超時(shí)時(shí)間,單位為秒
-I,?--ignore-times?不跳過那些有同樣的時(shí)間和長(zhǎng)度的文件
--size-only?當(dāng)決定是否要備份文件時(shí),僅僅察看文件大小而不考慮文件時(shí)間
--modify-window=NUM?決定文件是否時(shí)間相同時(shí)使用的時(shí)間戳窗口,默認(rèn)為0
-T?--temp-dir=DIR?DIR中創(chuàng)建臨時(shí)文件
--compare-dest=DIR?同樣比較DIR中的文件來決定是否需要備份
-P?等同于?--partial
--progress?顯示備份過程
-z,?--compress?對(duì)備份的文件在傳輸時(shí)進(jìn)行壓縮處理
--exclude=PATTERN?指定排除不需要傳輸?shù)奈募J?/font>
--include=PATTERN?指定不排除而需要傳輸?shù)奈募J?/font>
--exclude-from=FILE?排除FILE中指定模式的文件
--include-from=FILE?不排除FILE指定模式匹配的文件
--version?打印版本信息
--address?綁定到特定的地址
--config=FILE?指定其他的配置文件,不使用默認(rèn)的rsyncd.conf文件
--port=PORT?指定其他的rsync服務(wù)端口
--blocking-io?對(duì)遠(yuǎn)程shell使用阻塞IO
-stats?給出某些文件的傳輸狀態(tài)
--progress?在傳輸時(shí)現(xiàn)實(shí)傳輸過程
--log-format=formAT?指定日志文件格式
--password-file=FILE?FILE中得到密碼
--bwlimit=KBPS?限制I/O帶寬,KBytes?per?second
-h,?--help?顯示幫助信息

要排除同步某個(gè)目錄時(shí),為rsync添加--exculde=PATTERN參數(shù),注意,路徑是相對(duì)路徑,具體查看man?rsync
要排除某個(gè)目錄的事件監(jiān)聽的處理時(shí),為inotifywait添加--exclude--excludei參數(shù),具體查看man?inotifywait

?

轉(zhuǎn)載于:https://blog.51cto.com/dbachina/781009

總結(jié)

以上是生活随笔為你收集整理的rsync+inotify实现文件时时单项同步的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。