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外包服務
二維碼 關閉
主站蜘蛛池模板: 国产成年人在线_久久久www免费人成黑人精品_av免费在线不卡_天天做天天爱夜夜爽毛片_久久久亚洲一区二区三区_少妇毛片一区二区三区_99久久精品国产一区二区成人_99久久亚洲精品日本无码 | 国产在热线精品视频_亚洲精品无码MV在线观看_亚洲一区二区三区在线观看精品中文_污网站在线浏览_色情WWW成人片WWW222_久久久国产精品女同三区_国产偷亚洲偷欧美偷精品_欧美一区二区三区xxxx监狱 | 日本淫片免费啪啪3_成人片在线看_办公室扒开奶罩揉吮奶头视频_日韩福利二区_日本一级毛片免费看_www四虎影院_日日噜噜夜夜狠狠视频无码_91色影视 | 91中文国产_天地争霸美猴王在线观看_国产福利视频一区_日韩在线免费播放_曰韩不卡视频_99久久综合国产精品二区国产_日本精品区_JIZZ成熟少妇 www.97国产_在线成人毛片_欧美肥婆丰满bbw_18禁勿入午夜网站入口_欧美一级一区二区三区_wwwxx黄色_午夜精品免费看_岛国一区二区三区 | 亚洲精品wwww_中文字幕一区二区三区四区久久_91麻豆国产_免费追剧网址_国产精品pans私拍_国产成人a亚洲精品_老司机亚洲精品_久久999精品久久久 | 最近免费看av_成人午夜视频福利_JAPAN黑人极大黑炮_美女裸体黄网站18禁免费看影站_色欲AV永久无码精品无码蜜桃_国产精品99在线观看_中文字幕人妻熟女人妻A片_日韩女优精品 | 99精品视频在线看_无码毛片一区二区本码视频_中文字幕无码日本欧美大片_欧美肉大捧一进一出_后入内射国产一区二区_avhd老司机101_欧美在线观看网站_视频亚洲区 | 久久久999_国产精品6666_韩日av一区二区三区_18成人片黄网站WWW_国产精品偷伦在线观看_97人人做人人人难人人做_色777狠狠狠综合_国产色亚洲 | 韩国女主播一区二区三区_亚洲综合色自拍一区_精品视频一区二区三区中文字幕_国产女人高潮抽搐叫床视频_jiujiure国产_97aⅰ内射白浆蜜桃精品_又硬又粗又大一区二区三区视频_亚洲永久免费 | 欧美日韩国产一中文字不卡_亚洲九九视频_成人AV综合在线网站_亚洲人成人伊人成综合网无码_波多中文字幕_日韩亚洲av综合_青草国产精品久久久久久久久_一区二区三区四区不卡在线 | 高潮毛片无遮挡免费高清_午夜亚洲精品专区高潮日w_在线欧美a_国产成人午夜精华液_全球av在线_亚洲精品久久久蜜夜影视_奇米影视888狠狠狠777不卡_亚洲色大成网站www久久 | 成人一区视频_亚洲中文字幕久久精品蜜桃_91丨九色丨丰满人妖_一区二区三区免费在线看_中文字幕免费av_免费的黄色大片_黄色毛片a级片_亚洲国产成人精品无码区二本 | 在线黑人抽搐潮喷_欧美日韩国产精品_亚洲欧美日韩成人综合一区_free性欧美人与dog_亚洲免费精品视频_4tube在线观看_久久精品日_69精品久久久久9999不卡片 | 精品少妇人妻av一区二区_97视频国产自在自线2020_日本高清视频WWW夜色资源_久久久久极品_亚洲欧洲在线视频_中文国产一区_一级特黄在线_成人免费777777被爆出 | 中文字幕人妻在线中字_性色av一区二区三区四区_亚洲永久入口_国内精品二区_日韩毛片网站_最近2019年日本中文免费字幕_亚洲AV无码一区二区三区DV_成人播放视频 | 欧美一级射_日本丰满熟妇有毛_99免费视频网站_一级片欧美日韩_国产19页_国产精品国产三级国产av品爱网_大二情侣宾馆啪实拍_深夜看国产毛片在线视频香蕉 | 国产91精品老熟女泻火_一级片免费看_亚洲综合另类欧在线美_国产外围在线观看_欧美日韩在线精品一区二区三区激情综合_a4yy午夜_伊人婷婷涩六月丁香七月_中文字幕在线一二三区 | 久久影院午夜片一区_中文字幕+乱码+中文乱码_情侣偷拍久久_亚洲欧洲日韩淙合久久_被猛男伦流澡到高潮h麻豆_国产学生系列一区二区三区_99av精品孕妇在线_狠狠爱ADY亚洲色 | 粉嫩蜜臀av国产精品网站_一级级黄_日韩高清中文字幕一区二区_黄色影院免费看_农村熟女大胆露脸自拍_中文字幕亚洲二区_一本岛视频在线观看_亚洲欧美日韩不卡 | 一级毛片区_911久久香蕉国产线看观看_午夜影院在线观看_人人爱97_国产精品av一区二区三区_亚洲欧洲无码在线观看_日本高清视频免费观看_亚洲性精品 | 欧美爆操_91精品天堂_一女三男做2爱A片免费_国产精品久久久久免费a∨_久久97超碰色中文字幕蜜芽_aaa一级毛片_www.嫩草_国产av一级毛片 | 狠狠干人人干_国产又色又爽又黄又免费_一区二区亚洲_日韩黄色片_日韩视频一区二区三区在线观看_最近中文AV字幕在线中文_精品欧洲AV无码一区二区三区_岳好紧好湿夹太紧了好爽矜持 | 五月天国产成人av免费观看_日本黄色片一区二区_成人三级黄色免费网站_亚洲热影院_十四以下岁毛片带血a级_992tv国产精品福利在线_melody在线观看_色七七久久影院 | 黄色在线观看视频_中文字幕精品三区_99精品欧美一区二区三区_国产综合网站_精品国产三级自在线拍_鲁一鲁啪一啪_青青草中文字幕_国产肥熟女视频一区二区三区 | 91视频污免费_91九色成人_日本r级未删减在线观看_91青青在线视频_亚洲大胆视频_亚洲夜夜欢a∨一区二区三区_国产麻无矿码直接观看_欧美成年网站色a | 久久亚洲色WWW成人_无码国内精品久久人_国产精品亚洲片在线观看不卡_亚洲狠狠婷婷久久久四季av_国产原厂视频在线观看_成人国产精品免费观看视频_国产精品一区二区在线蜜芽TV_131mm亚洲国产精品久久 | 久久精品操_国产成人无码精品久久久小说_亚洲精品AV一区午夜福利_久久人人做_好硬啊进去太深了A片_国产在线视频一区二区_性欧美丰满熟妇XXXX性_国产精品探花在线观看 | 国产精品国三级国产av_亚洲AV人无码激艳猛片服务器_欧洲中文字幕_好大好硬好爽18禁视频免费_yjizz视频_久中文字幕_搜查官中文字幕一区二区_国产激情无码一区二区三区 | 天天摸夜夜摸爽爽狠狠婷婷97_欧美一区_伊人插插插_日本护士体内SHE精2╳╳╳_日韩免费不卡视频_国产成人午夜精品福利视频_欧美不卡中文字幕一区二区_四虎4hu永久免费 | 老鸭窝一区_操天天操_久久综合精品无码AV一区二区三区_国产精品呻吟声_久久超碰极品视觉盛宴_国产精品久久久久久久久久99_亚洲欧洲日本国产_久久久久久亚洲 | av不卡免费观看_99久久免费看精品国产一区非洲_久久精品激情_老人内射视频代码免费视频_色视频在线免费_国产成人精_亚洲久久成人_欧美一区免费在线观看 | 免费看的黄视频_懂色av一区二区三区久久久_网站大全免费网址_亚洲国产高清在线_a免费毛片_久久久不卡_一区高清视频_www480jcom四虎 | 欧美爆操_91精品天堂_一女三男做2爱A片免费_国产精品久久久久免费a∨_久久97超碰色中文字幕蜜芽_aaa一级毛片_www.嫩草_国产av一级毛片 | 少妇伦子伦精品无吗在线观看_亚洲精品18_国内网站成视频在线观看_国产亚洲影视在线视频播放_国产一国产二国产三国产四国产五_久久作爱_国产熟妇搡BBBB搡BBBB_av污在线观看 | 香蕉网在线_国产一级桃视频播放_久久久国产精品萌白酱免费_草久视频在线_日韩免费毛片_久久视频这里只精品_黄色片免费观看网站_成人免费看吃奶视频网站 | 91久久久久久久久久久久久久_老熟女毛茸茸_国产精品人人妻人人爽人人牛_日本乱人伦AⅤ精品_免费日韩网站_国产无遮挡又黄又大又爽_人妻少妇中文字幕久久_国精产品一码一码三MBA | 日日躁夜夜躁人人揉av五月天_精品乱码卡1卡2卡3免费开放_国产高清在线精品一本大道_2020av毛片_久久爱一区_亚洲av无码偷拍在线观看_99国产热_亚洲无码精品在线观看影院 | 97无码视频在线看视频_男人女人真曰批的视频8_国产超污精品A级毛片_国产亚洲精品久久久久久动漫_波多野结衣中文字幕在线视频_337p日本欧美色噜噜噜_男人艹女人视频_久久福利看片 | 亚洲中文无码永久免费_www私房写真在线观看_伊人无码一区二区三区_欧美精品在欧美一区二区_久久接色_欧美日韩精品一区_亚洲日本VA午夜在线影院_无码自拍一区 | 97成人资源网_亚洲第二色_欧美日韩中_欧美成aⅴ人高清WW_精品国产日韩亚洲一区二区_偷玩朋友的醉酒人妻中文字幕_亚洲AV无码片VR一区二区三区_高清一区在线观看 | 色婷婷综合在线观看_在线看免费无码av天堂的_男男av纯肉无码免费播放无码_国产xxxx69真实实拍_超爱碰在线资源_MM1313亚洲精品无码久久_日本在线不卡视频一二三区_欧美黑人巨大xxxxxx |