利用rsync和inotify-tools工具实现分布式服务器之间的文件同步

1服务器文件同步机制

数据填报项目有文件上传以及文档转化的功能,且用户上传文档存储于服务器本地,当分布式部署以后,需要将存储于一台服务器上的文件同步到其他所有的服务器上面,本方案使用inotify-tools + rsync来实现。

实现机制如下:

在rsync client服务器上通过inotify-tools工具检测文件变动,当检测到文件有变动时,通过rsync协议,将变动的文件传输到rsync server端,实现服务器之间的文件同步。

1.1安装inotify-tools

Inotify是文件系统事件监控工具,在Linux内核2.6.13开始引入,可以用来监控文件开发,关闭,移动/重命名,删除,创建或者改版属性。

通过yum安装:

yuminstall inotify-tools

1.2启动rsync服务

Rsync是一个远程数据同步工具,可以快速同步多台主机间的文件。Rsync在CentOS 6上默认是安装的,如果没有可以使用yum install rsync –y

因为多台服务文件同步,所以每台服务器上既要开rsync服务,又要开客户端。

启动rsync服务之前需要配置两个文件/etc/rsyncd.conf和/etc/rsyncd.secrets

然后启动rsync服务:rsync --daemon --config=/etc/rsyncd.conf

/etc/rsyncd.conf内容如下:

uid = root

gid = root

use chroot = no

max connections = 2

timeout = 600

strict modes = yes

port = 873

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

log file = /var/log/rsyncd.log

[file_sync]

path = /opt/media/file/

comment = rsync data sync logs

auth users = data

uid = root

gid = root

secrets file = /etc/rsyncd.secrets

read only = no

list = no

hosts

allow=100.24.26.48

hosts deny=0.0.0.0/32

/etc/rsyncd.secrets内容如下:文件权限需要修改成600

data:aaa@2016

1.3在rsync客户端启动文件同步脚本

需要准备两个文件:rsync.sh和rsync_client.pwd

rsync.sh即是主要的运行脚本,rsync_client.pwd是密码文件,对应rsync服务端的文件/etc/rsyncd.secrets,文件权限也是600

rsync.sh文件内容:

#!/bin/sh

current_date=$(date +%Y%m%d_%H%M%S)

source_path=/opt/media/file/

log_file=/var/log/rsync_client.log

rsync_server=10.45.231.79

rsync_user=data

rsync_pwd=/opt/media/rsync_client.pwd

rsync_module=file_sync

if [ ! -e ${rsync_pwd} ];then

echo -e "rsync client passwod file ${rsync_pwd} does notexist!"

exit 0

fi

inotify_fun(){

/usr/bin/inotifywait -mrq --timefmt '%Y/%m/%d-%H:%M:%S' --format '%T %w%f' \

-e modify,delete,create,move,attrib ${source_path} \

| while read file

do

/usr/bin/rsync -auvrtzopgP --progress --password-file=${rsync_pwd}${source_path} ${rsync_user}@${rsync_server}::${rsync_module}

done

}

#inotify log

inotify_fun >> ${log_file}2>&1 &

rsync_client.pwd文件内容:

aaa@2016

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容