456成人影院在线观看_亚洲a毛片_日韩9999_伊人网老司机_一本免费视频_最近高清日本免费

IT之道-艾銻知道

您當前位置: 主頁 > 資訊動態 > 艾銻分享 >

服務器維護CentOS7.2下unison+inotify實現Web目錄雙向同步


2020-06-17 21:10 作者:admin

服務器維護CentOS7.2下unison+inotify實現Web目錄雙向同步

服務器維護小知識1. 背景

最近需要上線一個公司展廳項目,項目中主要是后臺圖片管理。因此它基本不會出現多人同時修改同一圖片的情況,這樣做雙機的情況下,Web目錄最好是雙向同步。
在Linux下做WEB目錄文件同步,一般有如下幾種方式:
1. nfs實現web數據共享
2. rsync +inotify實現web數據同步
3. rsync+sersync更快更節約資源實現web數據同步
4. unison+inotify實現web數據雙向同步
他們各有優缺點,這里我根據實際情況,選擇方案4。

服務器維護小知識2. Unison簡介

Unison是一款跨平臺的文件同步工具,不僅支持本地對本地同步,也支持通過SSH、RSH和Socket等網絡協議進行同步。更棒的是,Unison支持雙向同步操作,你既可以從A同步到B,也可以從B同步到A,這些都不需要額外的設定。
官方文檔: 
http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.48.4-manual.html

服務器維護小知識3. 環境準備

CentOS7.2 2臺: 
show160 10.1.0.160 
show161 10.1.0.161

服務器維護小知識4. 安裝Objective Caml compiler

Objective Caml compiler (version 3.11.2 or later) 官網地址:http://caml.inria.fr/
cd /tmp
wget http://caml.inria.fr/pub/distrib/ocaml-4.03/ocaml-4.03.0.tar.gz
tar -zxvf ocaml-4.03.0.tar.gz
cd ocaml-4.03.0
./configure
make configure
make world opt
make install

服務器維護小知識5. 安裝unison

如果需要同步到遠程目錄,則遠程機器也需要安裝unison。
yum -y install ctags-etags  # 缺少此安裝包時下面make步驟會報錯
cd /tmp
wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.48.4.tar.gz
mkdir unison-2.48.4 && cd unison-2.48.4
tar -zxvf /tmp/unison-2.48.4.tar.gz
cd src
make UISTYLE=text THREADS=true
cp unison /usr/local/bin/
unison -version  # 有版本信息出現,則安裝成功

服務器維護小知識6. 安裝inotify

inotify官方地址:https://en.wikipedia.org/wiki/Inotify
yum -y install inotify-tools

服務器維護小知識7. 配置雙機ssh信任

show160上生成密鑰,不輸入私鑰密碼。
[root@show160 src]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
d6:3b:8a:47:23:04:5d:31:9a:97:d2:d3:5c:1b:f7:a3 root@show160
The key's randomart image is:
+--[ RSA 2048]----+
|     . .+.  o .  |
|    . .+ = . + . |
|     .+ = o .  ..|
|      .o o    . .|
|     .  S .  E   |
|      ..o  .     |
|       o .o      |
|       ... .     |
|      ...        |
+-----------------+
[root@show160 src]# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
[root@show160 src]# chmod 700 ~/.ssh
[root@show160 src]# chmod 600 ~/.ssh/authorized_keys
[root@show160 src]# rsync -avz /root/.ssh/authorized_keys root@10.1.0.161:/root/.ssh/authorized_keys
show161上生成密鑰,不輸入私鑰密碼。
[root@show161 tomcat]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e8:b4:f7:91:ad:a0:83:fb:00:55:c2:c6:2c:65:08:91 root@show161
The key's randomart image is:
+--[ RSA 2048]----+
|o+ *+ .          |
|E o.=o           |
|   o.            |
|   .   .         |
|  .   o S        |
|   . o .   o     |
|    ..o o o .    |
|    ...o o o     |
|    .oo.  o      |
+-----------------+
[root@show161 tomcat]# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
[root@show161 tomcat]# rsync -avz /root/.ssh/authorized_keys root@10.1.0.160:/root/.ssh/authorized_keys
在2臺機器上分別ssh對方IP,能無密碼登錄則表示配置成功。

服務器維護小知識8. unison的使用

unison的用法非常靈活和簡單,可以通過如下三種方式調用unison。 
第一種方式:”unison profile_name [options]” 
unison默認會讀取~/.unison目錄下的配置文件”profile_name.prf”。
注意,在這種方式下,命令行中并沒有指出要進行同步的兩個地址,所以,此種調用unison的方式必須在配置文件profile_name.prf中通過相關的root指令設置同步的路徑和同步的參數,如:
#Unison preferences file
root = /tmp/test
root = ssh://root@10.1.0.161//tmp/test/
#force =
#ignore =
batch = true 
第二種方式:”unison profile root1 root2 [options]” 
root1、root2分別表示要執行同步的兩個路徑。這兩個路徑可以是本地目錄路徑,也可以是遠程服務器的路徑,如ssh://username@//tmp/test 。由于同步的路徑已經在命令行指定了,所以這里無需在profile.prf配置文件中進行root指令的相關設置。
第三種方式:”unison root1 root2 [options]” 
這種方式相當于執行”unison default root1 root2”命令,即unison默認讀取default.prf的配置。

服務器維護小知識9. 配置雙機web目錄同步

[root@show160 src]# mkdir -p /root/.unison/
[root@show160 src]# vim /root/.unison/default.prf
#Unison preferences file
root = /data/showroom/
root = ssh://root@10.1.0.161//data/showroom/
#force =
#ignore =
batch = true
maxthreads = 300
#repeat = 1
#retry = 3
owner = true
group = true
perms = -1
fastcheck = false
rsync = false
sshargs = -C
xferbycopying = true
log = true
logfile = /root/.unison/unison.log
[root@show161 tmp]# mkdir -p /root/.unison/
[root@show161 tmp]# vim /root/.unison/default.prf
#Unison preferences file
root = /data/showroom/
root = ssh://root@10.1.0.160//data/showroom/
#force =
#ignore =
batch = true
maxthreads = 300
#repeat = 1
#retry = 3
owner = true
group = true
perms = -1
fastcheck = false
rsync = false
sshargs = -C
xferbycopying = true
log = true
logfile = /root/.unison/unison.log
相關注解如下: 
force表示會以本地所指定文件夾為標準,將該目錄同步到遠端。這里需要注意,如果指定了force參數,那么Unison就變成了單項同步了,也就是說會以force指定的文件夾為準進行同步,類似與rsync。 
Unison雙向同步基本原理是:假如有A B兩個文件夾,A文件夾把自己的改動同步到B,B文件夾也把自己的改動同步到A,最后A B兩文件夾的內容相同,是AB文件夾的合集。 
Unison雙向同步的一個缺點是,對于一個文件在兩個同步文件夾中都被修改時,unison是不會去同步的,因為unison無法判斷以那個為準。 
ignore = Path表示忽略指定目錄,即同步時不同步它。 
batch = true,表示全自動模式,接受缺省動作,并執行。 
-fastcheck true 表示同步時僅通過文件的創建時間來比較,如果選項為false,Unison則將比較兩地文件的內容。 
log = true 表示在終端輸出運行信息。 
logfile 指定輸出的log文件。
另外,Unison有很多參數,這里僅介紹常用的幾個,詳細的請參看Unison官方手冊。 
-auto //接受缺省的動作,然后等待用戶確認是否執行。 
-batch //batch mode, 全自動模式,接受缺省動作,并執行。 
-ignore xxx //增加 xxx 到忽略列表中 
-ignorecase [true|false|default] //是否忽略文件名大小寫 
-follow xxx //是否支持對符號連接指向內容的同步 
owner = true //保持同步過來的文件屬主 
group = true //保持同步過來的文件組信息 
perms = -1 //保持同步過來的文件讀寫權限 
repeat = 1 //間隔1秒后,開始新的一次同步檢查 
retry = 3 //失敗重試 
sshargs = -C //使用ssh的壓縮傳輸方式 
xferbycopying = true” 
-immutable xxx //不變目錄,掃描時可以忽略 
-silent //安靜模式 
-times //同步修改時間 
-path xxx 參數 //只同步 -path 參數指定的子目錄以及文件,而非整個目錄,-path 可以多次出現。
注意:Windows下的unison配置文件默認位于C:\Documents and Settings\currentuser.unison目錄,默認的配置文件名是default.prf。
在兩臺機器都添加如下腳本,并使用nohup方式運行。有需要則將腳本添加到/etc/rc.local中。
#/bin/bash

src="/data/showroom/"

/usr/bin/inotifywait -mrq -e create,delete,modify,move $src | while read line; do
    /usr/local/bin/unison
    echo -n "$(date +%F-%T) $line" >> /var/log/inotify.log
done

服務器維護小知識10. 總結

經過以上介紹,我們大體知道了unison的使用方法。它的雙向同步的確給我們帶來了極大的方便,但同時也有一個缺點:對于一個文件在兩個同步文件夾中都被修改時,unison是不會去同步的,因為unison無法判斷以哪個為準,需要人工干預處理,這就需要我們自己權衡利弊。
IT運維  我們選擇北京艾銻無限
以上文章由北京艾銻無限科技發展有限公司整理


相關文章

IT外包服務
二維碼 關閉
主站蜘蛛池模板: 人妻AV无码一区二区三区_99激情网_亚洲第一无码xxxxxx_131美女MM爱做爽爽爽视频_a级毛片高清免费视频在线_久草com_久久久亚洲精品中文字幕_一区二区三区在线不卡 | 久久国内_亚洲免费人成视频观看_免费一区区三区四区_国产日本在线_精品国产一区二区三区2021_国产一级特黄毛片在线毛片_亚洲国产精品成人av_波多野结衣系列18部无码观看a | 2018av天堂在线视频精品观看_特级毛片aaaa级毛片免费_免费观看久久久_免费视频一区二区_大地资源在线视频在线观看_欧洲少妇性喷潮_精品亚洲va在线va天堂资源站_国产免费一区二区三区播放 久久综合久久精品_人人妻人人澡人人爽人人精品AV_97久久夜色精品国产九色_老司机深夜福利视频_无码人妻精品1国产婷婷_china直男gay国产_色妹子综合网_最近最新中文第一页 | 日本成人激情_久久久免费精品视频_亚洲激情四射视频中文字幕久久_日本wwwwww_男女做爰裸体猛烈吃奶摸视频_日韩大片在线观看_麻豆视频成人_亚洲黄色一级大片 | 亚洲av永久无码精品国产精品_欧美性猛交XXXX黑人猛交_中文字幕涩涩久久乱小说_欧美成人精品一区二区_国产视频精品自拍_欧美日一区二区_免费av在线_久久久久青草线蕉亚洲 | 成人在线观看不卡_国产人成视频在线视频_91亚洲精品久久久中文字幕_九九九九九九精品_超碰人人插_麻豆文化传媒在国产之光_国产精品久久综合_成年人网站国产 | 99情趣网视频_欧美日韩久久精品_久久99精品久久久秒播软件优势_逼逼影视_女人被狂躁的高潮免费视频_亚洲欧洲日韩在线观看_国产xxxx69_亚洲国产精品一区二区第一页 | 日本成本人三级在线观看_最近中文字幕免费mv2019在线_色爱综合网中文字幕第1页_综合网中文字幕_综合激情久久_caoporn超碰最新公开_久久久久久久久久久国产_日本特黄特色大片免费视频老年人 | 国产成人精品视频在线_av网站亚洲_成人一区二_国产精品自产拍在线观看_亚洲av日韩av激情亚洲_91在线免费公开视频_国产精品二区在线观看_看黄A大片爽爽影院免费无码 | 男女啪啪免费观看网站_欧美性开放情侣网站_别c我啊嗯国产av一毛片_79年熟女大胆露脸啪啪对白P_久久久久久久一级_日韩国产色_日本视频黄_欧美一区二区播放 | 久久午夜夜伦鲁鲁一区二区_国产成人精品不卡_九色精品视频在线观看_无码一区二区三区不卡AV_久久久久高清视频_狠狠色噜噜狠狠狠狠888奇米_无码人中文字幕_红桃TV.欧美国产 | 婷婷午夜剧场_黑人巨大白妞出浆_日本成人综合_538在线一区二区精品国产_啦啦啦www在线观看免费视频_免费人成在线观看视频高潮_yw在线观看_a黄在线观看 | 免费观看在线A毛片_亚洲中文字幕无码久久2017_老司机伊人网_一本色道久久综合狠狠躁的推荐_99久热在线精品国产观看_成人公开视频在线观看_欧美younv交_无限看片的视频高清在线 | 性中国熟妇videofreesexwww_免费a爱片猛猛_久久精品色播_日本爽快片100色毛片视频_国产69精品久久久久777糖心_色婷婷国产精品综合在线观看_高清亚洲一区_国内在线视频 | 99国产精品99久久久久久_黄色大片免费网址_国产黄片自拍亚洲AV_成a人v_国产95亚洲_www.免费黄色_欧美成人网视频_韩国色网 日韩免费区_精品国产AV色一区二区深夜久久_av边做边流奶水无码免费_欧洲黄色级黄色99片_国产a网站_免费久久一级欧美_97碰碰碰人妻无码视频_三级黄色性生活视频 | 亚洲精品wwww_中文字幕一区二区三区四区久久_91麻豆国产_免费追剧网址_国产精品pans私拍_国产成人a亚洲精品_老司机亚洲精品_久久999精品久久久 | 中文字幕在线国产_亚洲一本大道av久在线播放_男人进去女人爽免费视频_中文字幕无码日韩中文字幕_日日夜夜天天射_国内久久久_狠狠做深爱婷婷久久综合一区_国产高清福利无码视频 | 无码免费人妻A片AAA毛片_免费一区二区三区四区_欧美粗大无套gay_日本色综合网_人人爽在线视频_欧一区二区三区_中文激情在线一区二区_一本岛道一二三不卡区 | 色综合天天综合网国产成人网_手机看黄AV免费网址_久久人人97超碰精品_国产精品一区二区a_日韩亚洲国产精品_日韩人妻无码精品久久久不卡_yy111111少妇影院免费_在线观看国产色视频网站 | 97视频免费播放_爱爱免费视频网站_刺激性视频黄页_婷婷伊人网_人妻无码AV中文系列久久兔费_国产精品一区二区在线播放_av专区在线观看_97在线观看 | 亚洲成人av一区二区三区_中文字幕在线中文字幕二区_欧美巨大XXXX做受中文字幕_超碰在线久_av永久免费观看_欧美成人精品高清在线观看_一个人免费在线观看动漫视频www_永久不封国产av毛片 | 被仇人调教成禁脔h虐_国产成人午夜影院_亚洲精品伦理_3p少妇全程露脸过瘾呀_我的妺妺h伦浴室无码视频_欧洲尺码日本尺码专线不卡顿_玩弄少妇肉体到高潮动态图_国产精品岛国久久久久久久久红粉 | 四虎影视免费在线_久久综合狠狠综合_18久久久_在线播放成人av_国产在线a_大地资源在线观看免费中文版_久久综合狠狠综合久久综合88_91精品国产一区二区 | 九色免费视频_国产精品一区二区亚洲_www.久久综合_亚洲九九影院_日本国产免费_狠狠色噜噜狠狠狠狠色综合久AV_亚洲精品美女久久777777_中文一区二 | 人人人妻人人澡人人爽欧美一区_四色激情网_麻豆神马91_精品欧美一区二区中文字幕视频_激情信箱免费观看_日本黄色不卡_aaaa国产_狠狠做五月深爱婷婷伊人 | 国产精品无码av无码_嫩草视频网_免费a级毛片无码∨_久无码久无码AV无码_久久九九免费视频_亚洲国产成人A精品不卡在线_在线午夜av_妇女站着交性打野战 | 亚洲成本人无码薄码区_中日字幕大片在线播放_一级毛片免费播放_无码人妻H动漫中文字幕_亚洲黄色a_国产自在自线午夜精品视频_成人国产免费软件_日韩av一区二区三区四区 | 黄瓜tv在线观看_国产黄色理论片_精品亚洲永久_天天摸天天澡天天看_性XXXXX大片免费视频_任你操在线_国产精品二区三区在线观看_粗大的内捧猛烈进出的视频免费 | 精品无人码麻豆乱码1区2区_老头玩小嫩奶陈晴晴老刘_午夜影院在线免费观看_日本色中色_男人被口爽还是啪啪爽_一二三四视频社区5在线高清_国产艳妇av视国产精选av一区_精品国产乱码久久久久久久 | 国内精品伊人久久久久AV影院_国产欧美洲中文字幕_国产天天骚_黄色大全免费观看_av免费人人干_无码一区自拍偷拍第二页_天堂va蜜桃_成人午夜黄色 | 色综合a_日韩一区二区三区精品视频第3页_成人午夜片av在线看_国产华人av导航_欧美一区二区三区在线观看_欧美丰满熟妇XXXX_国产XXXX做受视频_91九色欧美 | 国产精品成人VA在线播放_国产aⅴ精品一区二区三理论片_黄色片哪里可以看_国产农村女人一级毛片了_饕餮记在线观看_别揉我奶头~嗯~啊~视频在线观看_伊人色爱_国产91aaa | 亚洲一区二区日韩_欧美黑人又大又粗XXXXX_免费久久精品视频_黄色免费看片_好好的日在线视频观看_特级无码毛片免费视频尤物_成人亚洲一区二区一_欧美交换配乱吟粗大 | 亚洲一二三四果冻传媒_免费精品视频一区_国产伦一区二区三区久久_国产午夜精品一区二区三区欧美_午夜久久久久久久久久久久_国产亚洲h网综合h网_福利国产在线_亚洲美女久久久 | 最近更新中文字幕视频_欧美精品1区2区3区_在线成人av_青青草视频在线观看视频_一级欧美_成人无码区在线观看_日韩精品免费一区二区三区_91区国产 | 国产美女在线精品_国产美女视频黄a片免费观看软件_亚洲欧美日韩综合久久_欧美专区第一页_天天摸日日干_狼人无码中文在线观看_欧美亚洲性视频_国产精品久久久久久久稀缺资源 | 歪歪羞羞嘿咻汗汗av禁漫天堂_欧美精品一区二区视频_久久久97一区蜜臀国产日产精品_给丰满少妇按摩到高潮_孕交VIDEOSGRATIS孕妇性欧美_熟睡中被义子侵犯在线播放_无码裸模视频在线观看_精品无码人妻夜人多侵犯18 | 国产99在线观看_亚洲欧洲日韩综合二区_jk美女啪啪_一级毛片私人影院_91大神精品在线_牛和人交videos欧美3d_hd法国xxxxhdvideos_免费看片的网址 | 久久久久久色_国产成人亚洲第一_91香蕉亚洲精品_欧美日韩国产中文字幕_天堂资源在线官网_夜色福利院在线观看免费_国产成网站18禁止久久影院_色青青草原桃花久久综合 | 国产精品国三级国产av_亚洲AV人无码激艳猛片服务器_欧洲中文字幕_好大好硬好爽18禁视频免费_yjizz视频_久中文字幕_搜查官中文字幕一区二区_国产激情无码一区二区三区 | 噜噜高清欧美内射短视频_a一级黄色录像_国产高清在线_国产精品久久久亚洲女人_久久99热这里有精品6_婷婷激情综合色五月久久图片_亚洲AV无码一区二区三区18_免费香蕉视频 |