日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/5/22 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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?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?

這是歡迎詞,可以不設置


在服務端和客戶端都創建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?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?


啟動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?${src}
-m?是保持一直監聽
-r?是遞歸查看目錄
-q?是打印出事件
-e?create,move,delete,modify,attrib?是指?監聽?創建?移動?刪除?寫入?權限”?事件

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

rsync的完整參數說明:

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

要排除同步某個目錄時,為rsync添加--exculde=PATTERN參數,注意,路徑是相對路徑,具體查看man?rsync。
要排除某個目錄的事件監聽的處理時,為inotifywait添加--exclude--excludei參數,具體查看man?inotifywait。

?

轉載于:https://blog.51cto.com/dbachina/781009

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。