欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

歡迎來到云服務器

系統(tǒng)配置

Linux系統(tǒng)主動觸發(fā)式文件同步的實現(xiàn)方法

當大家使用阿里云的SLB的時候就會遇到文件同步的問題,一般我們會選擇Rsync進行定期同步,單這樣的同步頻率和效率對業(yè)務影響往往較大,因此這里簡單介紹下Linux下觸發(fā)同步的實現(xiàn)方式以及其他在該特性基礎上實現(xiàn)文件防篡改的方式。

 

一、什么是rsync

Rsync(remotesynchronize)是一個遠程數(shù)據(jù)同步工具,可通過 LAN/WAN 快速同步多臺主機間的文件。Rsync 使用所謂的“Rsync 算法”來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送個文件的不同部分,而不是每次都整份傳送,因此速度相當快。rsync 同時也在拷貝文件時,加--partial可支持斷點續(xù)傳,比cp要好多了,同時也rsync也可以拷貝鏈接文件,這一點是cp做不到的。

 

二、什么是inotify

inotify 是文件系統(tǒng)事件監(jiān)控機制,作為 dnotify 的有效替代。dnotify 是較早內核支持的文件監(jiān)控機制。Inotify 是一種強大的、細粒度的、異步的機制,它滿足各種各樣的文件監(jiān)控需要,不僅限于安全和性能。

 

三、配置rsync + inotify觸發(fā)式同步

前提條件,linux內核版本高于2.6.13才能支持inotify特性

由于執(zhí)行腳本需要輸入目標服務器口令,因此我們需要先配置無密碼登錄

執(zhí)行ssh-keygen -t rsa,一路回車生成公鑰與密鑰

執(zhí)行ssh-copy-id -i~/.ssh/id_rsa.pub root@被控端IP 拷貝公鑰到被控端

 
需要輸入被控端密碼 
 
 
下載所需的程序: 
Inotify-toolshttps://github.com/rvoicilas/inotify-tools/wiki 
Rsynchttp://rsync.samba.org/ftp/rsync 
 
 
安裝所需程序: 
tarzxvf rsync-3.1.1.tar.gz 
cdrsync-3.1.1 
./configure–prefix=/usr/local/rsync 
make&& make install 
tarzxvf inotify-tools-3.14.tar.gz 
cdinotify-tools-3.14 
./configure 
make&& make install 
 
 
配置同步腳本(以下內容保存為sh文件,例如rsync.sh): 
#!/bin/sh 
#源目錄 
src=/home/wwwroot/ 
#目標目錄 
des=/home/wwwroot 
#目標IP 
ip=192.168.1.2 
ip2=192.168.1.3 
#設置inotifywait可以監(jiān)視的文件數(shù)量 
echo 50000000 >/proc/sys/fs/inotify/max_user_watches 
#設置inotify實例事件(event)隊列可容納的事件數(shù)量 
echo 327679 >/proc/sys/fs/inotify/max_queued_events 
 
/usr/local/bin/inotifywait -mrq--timefmt '%d/%m/%y %H:%M' --format  '%T%w%f' -e modify,delete,create,attrib ${src} | while read  file 
       do 
                rsync -avz --delete --progress${src} root@${ip}:${des} && 
                echo "${src} wasrsynced" 
                echo"-----------------------------------------------------" 
                rsync -avz --delete --progress${src} root@${ip2}:${des} && 
                echo "${src} wasrsynced" 
                echo"-----------------------------------------------------" 
       done 
將腳本添加到隨機啟動文件/etc/rc.local中,執(zhí)行nohup sh rsync.sh &即后臺執(zhí)行 
 
 
腳本相關注釋: 
   -m 是保持一直監(jiān)聽 
   -r 是遞歸查看目錄 
   -q 是打印出事件~ 
   rsync -aHqzt $SRC $DST 
   -a 存檔模式 
   -H 保存硬連接 
   -q 制止非錯誤信息 
   -z 壓縮文件數(shù)據(jù)在傳輸 
   -t 維護修改時間 
   -delete 刪除于多余文件 
當要排出同步某個目錄時,為rsync添加--exclude=PATTERN參數(shù),注意,路徑是相對路徑。詳細查看man rsync 
當要排除都某個目錄的事件監(jiān)控的處理時,為inotifywait添加--exclude或--excludei參數(shù)。詳細查看man inotifywait 
 
 
注意:inotifywait可以監(jiān)視文件的動作有: 
        access         文件或目錄的內容被讀 
        modify         文件或目錄的內容被寫 
        attrib          文件或目錄的屬性被修改 
        close_write     文件或目錄以可寫模式關閉 
        close_nowrite   文件或目錄以只讀模式關閉 
        close           文件或目錄關閉,不管是什么模式 
        open            文件或目錄被打開 
        moved_to        文件或目錄移入監(jiān)控目錄 
        moved_from      文件或目錄移出監(jiān)控目錄 
        move            文件或目錄移動 
        create           文件或目錄創(chuàng)建 
        delete          文件或目錄在監(jiān)控目錄中刪除 
        delete_self       文件或目錄刪除 
        unmount         未掛載的文件或目錄 
 
 
四、其他 
1、高效觸發(fā)式同步軟件sersync2 
下載地址:https://code.google.com/p/sersync/downloads/list 
程序包含2個文件:confxml.xml配置文件和sersync2執(zhí)行程序 
 
 
配置文件說明: 
修改sshstart="true'以SSH方式傳輸文件 
<rsync> 
     <sshstart="true"/> 
</rsync> 
開啟文件過濾 
<filter start="true"> 
<excludeexpression="^info/*"></exclude> 
<excludeexpression="(.*).gz"></exclude> 
</filter> 
同步源目錄和目標目錄設置 
<localpath watch="/home/wwwroot"> 
<remote ip="192.168.1.2"name="/home/wwwroot"/> 
</localpath> 
 
 
執(zhí)行程序: 
執(zhí)行前如果是SSH傳輸先配置好SSH免密碼登陸 
./sersync2–d 后臺執(zhí)行 
./sersync2–r 先執(zhí)行一次完整同步 
./sersync2–o confxml.xml 指定配置文件 
./sersync2–n num 指定線程數(shù),默認10個線程 
 
 
監(jiān)控程序: 
checksersync.sh 
執(zhí)行后會判斷進程中是否有sersync2存在,沒有就自動執(zhí)行 
如果有修改過配置文件名稱,那么相應監(jiān)控腳本內也需要修改對應 
 
 
2、防篡改的實現(xiàn) 
通過Inotiry和Rsync我們可以實現(xiàn)文件同步,根據(jù)Inotiry的特性我們也可以實現(xiàn)文件的放篡改,方法是將腳本中SCP反向傳輸即可,例如: 
rsync -avz --delete --progressroot@${ip}:${des} ${src} && 
 
實現(xiàn)圖例: 
WEB服務器檢測到行為1執(zhí)行行為2 
防篡改源服務器檢測到行為3執(zhí)行行為2 
騰訊云代理

Copyright © 2003-2021 MFISP.COM. 國外vps服務器租用 夢飛云服務器租用 版權所有 ? 粵ICP備11019662號

主站蜘蛛池模板: 钟山县| 峡江县| 新野县| 五河县| 松阳县| 邢台市| 合阳县| 铜山县| 石阡县| 梅河口市| 江油市| 门头沟区| 昆明市| 南皮县| 甘孜县| 华坪县| 错那县| 盐源县| 金乡县| 昌都县| 南丹县| 东乡县| 佛冈县| 平武县| 宁波市| 河间市| 安宁市| 马鞍山市| 卫辉市| 宜川县| 山东省| 合江县| 麻城市| 崇信县| 英山县| 元谋县| 辽中县| 桂东县| 商洛市| 东乌珠穆沁旗| 抚州市|