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外包服務
二維碼 關閉
主站蜘蛛池模板: 国产一级视频在线_第一福利所导航_国产成人a片免费观看_亚洲综合图片区色_人人看超碰_亚洲在线网站_亚洲三区四区_性猛交xxxx乱大交3 | 久久久网_国产熟妇视频在线观看_色呦呦视频在线_18禁黄网站免费_韩国美女一级毛片_成人在线视频国产_www一级毛片_久久夜色精品国产欧美乱 | xxx麻豆_亚洲AV无码AV有码AV_国产女做a爱免费视频_va久久久久精码专区_国产精品一区二区三区久久久久_亚洲av永久精品无码_中文字幕AV无码免费一区_久久久精品福利视频 | 国产精品入口a级_免费羞羞视频无遮挡噼啪男男_国产农村熟妇videos_精品国产精品国产_melody高清在线观看_亚欧在线高清专区_欧美人免费视频网站在线_中文字字幕乱码视频高清 | 国产粉嫩大学生16高清专区_免费毛片一区二区三区久久久毛片_亚洲AV无码乱码麻豆精品国产_欧美久操视频_国产精品美女一区_成人午夜免费在线_日本高清视频一区二区三区_国产疯狂性受xxxxx喷水 | 国产亚洲成人网_国产三级在线观看_人成在线免费网站_亚洲国产成av人天堂无码_97在线视频免费看_久久久69_亚洲激情成人网_国色天香乱码区 | 免费在线日本_毛片TV网站无套内射TV网站_不卡一本_国产日韩免费观看_久久久噜噜噜_久久久久久国产精品亚洲78_A一级片中文字幕_日韩中文字幕一区二区三区 | 色婷婷综合在线观看_在线看免费无码av天堂的_男男av纯肉无码免费播放无码_国产xxxx69真实实拍_超爱碰在线资源_MM1313亚洲精品无码久久_日本在线不卡视频一二三区_欧美黑人巨大xxxxxx | 青青草免费观看视频_久久精品国产99国产精2020新增功能_亚洲精品无码久久久久秋霞_免费看黄网站在线观看_国产亚洲综合精品_亚洲永久在线观看_日韩av片永久免费网站_www亚洲精品少妇裸乳一区二区 | 国产在线观看黄色_久久99精品久久久久久久久久_成a人v在线观看视频_AV无码专区亚洲AVL在线观看_激情视频中文字幕_狠狠丁香_肉嘟嘟WWW视频在线观看高清_亚洲综合色久 | 国产内射在线激情一区_免费观看成人欧美WWW色_国模无码视频一区_午夜a级理论片在线播放琪琪_四虎看黄_亚洲AV成人无码一区无广告_成人午夜影视_国语对白做受xxxxx在线 | 日韩精品一区二区三区视频网_日本黄色片在线播放_影音先锋黄色网址_特级毛片A级毛片免费播放_日本成人午夜视频_97超碰精品成人国产_久久婷婷五月综合色国产_亚洲视频在线观看网址 | japanese69极品少妇_卡一卡二卡三免费视频_亚洲精品中文字幕无码蜜桃_在线观看美女网站大全免费_中文字幕制服丝袜一区二区三区_久久久精品国产一区_九九九在线观看_想看一级黄色 | 17C精品麻豆一区二区免费_97人妻熟女成人免费视频_亚洲在线中字幕_99久久毛片免费观看_我的性奴的肉玩具1一17心奴_国产精品久久777777毛茸茸_韩国一级毛片_日韩人妻少妇一区二区三区 | 天堂中文官网在线_欧美4区_国产欧美一区二区三区视频_成人综合网久久久久久_韩国专区福利一区二区_中国农村熟妇性视频_国产精品毛片无遮挡_波多野结衣AV一区二区无码 | 免费看a的网站_日本熟妇牲交视频_国内精品国产成人国产三级李采潭_欧美日一_老子午夜精品无码_35岁少妇被23岁小伙征服_baoyu133.con永久免费视频_欧美变态另类人妖 | 久久久久wwww_亚洲av人人夜夜澡人人_91精品国产自产在线观看自播_免费人成网站视频在线观看国内_亚洲色图欧美自拍_日本国产欧美_久久精品亚洲综合专区_亚洲国产成人乱码 | 小嫩嫩12欧美_大地资源二中文在线观看官网_大菠萝福利视频_亚洲成人三级在线观看_久久韩日_国产成人女人在线视频观看_欧美精选视频_国产果冻豆传媒麻婆 | 日本三集片_大地资源免费高清观看_中国高清av_精品无码黑人又粗又大又长_亚洲久久超碰无码色中文字幕_色拍综合_a一级免费视频_亚洲区小说区激情区图片区 | 小姨在线_亚洲V国产V天堂A无码二区_囯产精品久久久久久久久久妞妞_国产三级欧美三级_日韩一区二区国产_一级黄色免费观看_免费做人爱高潮1000视频_国产情侣无套精品视频 | 欧美最猛性xxxxx69交_欧美在线观看视频一区_欧美极品一区_99精品产国品一二三产区_日韩人妻无码精品久久免费一_中文字幕亚洲综合久久综合_又色又爽又黄又免费看的视频_久久69国产精品久久69软件 | 操欧美丝袜_老熟女重囗味HDXX70星空_亚洲国产成人自拍_国产超碰网页_1024看片金沙日韩一区二区_免费观看AV在线网站网址_亚洲一区二区三区日韩_国产一级小视频 | 欧美一级鲁丝片_亞洲中文字幕第一_www.亚洲精品.com_欧美色香蕉_91桃色免费观看_红杏国产成人精品视频_国产精品片www48888_精品国产精品三级精品av网址 | 青热久思思_成人AV导航_mmm·www看片免费观看_麻豆文化传媒www网站入口_国产乱码一区二区三区免费_国产成人啪精品午夜在线观看_日本黄色片视频_国产乱一区二区 | 日本高清免费一本视频100禁_在线不卡欧美精品一区二区三区_国产一区二区好的精华液_中文综合在线_国产啊啊啊视频在线观看_大地资源网免费观看高清_亚洲精品永久在线观看_日韩视频第一区 | 操操操爱爱爱_久色88_国产99视频精品免费观看6_av中文字幕二区_国产尤物av尤物在线观看_特级太黄A片免费播放一_精品护士一区二区三区_久久爱99 | 中文字幕无码日韩专区_久久艹逼_男人j进女人p免费视频_日本黄色免费在线_天堂综合网久久_亚洲欧美国产精品久久久久_中文字幕日韩高清2024_亚洲欧美激情精品一区二区 | www.狠狠艹_久久动漫网址_亚洲一区在线日韩在线尤物_五十路熟妇强烈无码_国产高清乱子精品偷伦对白_日本特级黄色大片_2018天天操夜夜操_国产AV午夜精品一区二区三区 | 91夜夜夜_久久久久夜夜夜_www.99热这里只有精品_亚洲欧美一区二区三区在线观看_自拍偷拍第八页_日韩一级片毛片_色播亚洲视频在线观看_波多野结衣AV一区二区全免费观看 97中文字幕第十二页_日日天天_九七九色丨麻豆_日本线在线_少妇MM被擦出白浆液视频_一个人看www在线视频_91精品国产91久久久久久黑人_男人操女人免费网站 | 福利视频日韩_日本不卡免费一区_一久久久_粗暴进入娇小呻吟痛呼_激情伊人五月天久久综合_国产精品人妻熟女毛片av_精品少妇爆乳无码专区久久_日韩在线日韩 | 精品国产无套在线观看_亚洲在线看_久久精品免费看国产免费软件_欧美桃色网_久久久99精品成人片_日韩黄色av_美女黄网免费_精品欧美一区二区久久久伦 | 水中色av综合_久久婷婷五月综合尤物色国产_做暖暖小视频免费xo_久久久久精品无码专区_四虎国产成人_九九热在线视频免费观看_手机成人在线观看_999久久久精品一区二区 | 久久激情av_欧美日韩精品一区二区三区高清视频_国产精品久久久久久久久果冻传媒_www.av黄_四虎影视久久久免费观看_亚洲精品影院在线_深夜福利备好纸巾18禁止_亚洲va | 亚洲一区二区日韩_欧美黑人又大又粗XXXXX_免费久久精品视频_黄色免费看片_好好的日在线视频观看_特级无码毛片免费视频尤物_成人亚洲一区二区一_欧美交换配乱吟粗大 | 欧洲熟妇大荫蒂高潮a片视频_人人射人人爱_涩涩小视频_欧美日韩一区二区精品_嫩草院一区二区乱码蜜臀_cba视频_粉嫩AV一区二区夜夜嗨_日韩精品一区二区免费 | 精品久久久久久久久久久久包黑料_午夜精品久久久久久久男人的天堂_命带桃花1987在线_久久精品国产av一区二区蜜臀_爱逼爱操综合网_性刺激的大陆三级视频_一级黄色特级片_国产成人AV无码专区亚洲AV | 98超碰在线_日本A级作爱片金瓶双艳_国产精品亚洲一区二区三区喷水_青青草成人自拍_在线观看不卡av_JAPANESE日本熟妇喷水_91伊人_欧美一码二码三码无码 | 国产一级淫免费播放m_俺也去色官网在线播放_国产初高中生露脸在线播放_欧美激情久久久久久久_一本大道专区_欧美国产综合一区_日韩a在线_a一级黄色大片 | 欧美日韩中文字幕一区二区高清_人与性动交aaaabbbb_国产一区二区三区四区五区加勒比_国产成人综合欧美精品久久_99久久国产宗和精品1上映_日本丰满人要无码视频_日韩成人区_国产美女视频黄 | 午夜老司机av_在线观看免费黄色小视频_欧美亚洲一级片_大胸美女被吃奶爽死视频_精品国产第一区二区三区的区别_一级毛片一级黄片_CHINESESPANK国产免费网站_国产露脸精品产三级国产av | 97超碰人人爽_91男生福利_丰满人妻一区二区三区av猛交_人妻天天爽夜夜爽一区二区_少妇人妻偷人精品一区二区_麻豆短视频免费_国产伦精品免费视频_夜夜欢天天干 |