unison+inotify实现文件双向自动同步
nfs适合存小图片和小文件,有一个致命的缺点,就是其中一台web服务挂掉之后,会直接导致web页面无法访问,动态的那种数据,
而且数据量很大的数据不适合nfs
Unison是一款跨平台(window,unix,linux)的文件同步对象,不仅支撑本地对本地同步,也支持经由过程SSH、RSH和Socket同
步支持双向同步
下载并且编译安装三个软件包。(inotify-tools-3.14.tar.gz、ocaml-3.10.2.tar.gz、unison-2.32.52.tar.gz)
mkdir /tools cd /tools
wget http://caml.inria.fr/pub/distrib/ocaml-3.10/ocaml-3.10.2.tar.gz
wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/unison-2.32.52/unison-2.32.52.tar.gz
wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar xf inotify-tools-3.14.tar.gz
tar xf ocaml-3.10.2.tar.gz
tar xf unison-2.32.52.tar.gz
cd inotify-tools-3.14
./configure --prefix=/usr/local/inotify && make && make install
echo "PATH=/usr/local/inotify/bin:$PATH" >/etc/profile.d/inotify.sh
source /etc/profile.d/inotify.sh
echo "/usr/local/inotify/lib" >/etc/ld.so.conf.d/inotify.conf (创建库文件)
ldconfig -v | grep inotify (使系统从新装载一下所有库文件)
ln -sv /usr/local/inotify/include/ /usr/include/inotify (导出头文件)
cd /tools/ocaml-3.10.2
./configure
make world opt
make install
cd /tools/unison-2.32.52
yum -y install ctags-etags
make UISTYLE=text THREADS=true STATIC=true
#UISTYLE=text THREADS=true STATIC=true 表示:使用命令方式,加入线程支持,以静态模式编译
make install
接下来会提示错误
mv /root/bin//unison /tmp/unison-10576
mv: 无法获取"/root/bin//unison" 的文件状态(stat): 没有那个文件或目录
make: [doinstall] 错误 1 (忽略)
cp unison /root/bin/
cp: 无法创建普通文件"/root/bin/": 是一个目录
make: *** [doinstall] 错误 1
上述报错不用管他,接下来使用一条命令就可以:cp unison /usr/local/bin
上述操作在其他要同步的服务器也操作一遍
生成ssh秘钥对:ssh-keygen cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
将文件id_rsa id_rsa.pub authorized_keys 复制到其他主机上的对应目录
也可以使用ssh-copy-id -i命令,例如:ssh-copy-id -i ./.ssh/id_rsa.pub root@192.168.238.236
mkdir -p /var/vm1
mkdir -p /var/vm2
vmware1上
[root@vmware1 ~]# cat unison-A.sh
vmware2上
[root@vmware2 ~]# cat unison-B.sh
实际操作中,最好的方法是,第一次先把要上传的文件打成包,用 nc 上传,然后展开到服务器中,之后手动执行一次 unison 同步即
可
补充:使用自动同步之前最好执行一下手动同步
补充:当文件同步完成后可能会看到如下信息

要求认证RSA密钥的指纹信息,这个是没有必要的,每次手动输入yes很麻烦,vim /etc/ssh/ssh_config在最后一行添加如下信
息StrictHostKeyChecking no

群集中,同步在多机之间进行,而unison的同步功能仅支持双机。因此我们设计了一个星型的拓扑结构,来实现多机的同步。其设计
思想就是利用unison的双向同步功能,指定一台服务器为星型结构的主服务器(server1),剩余服务器与其进行双向同步。这样,任
何一台服务器上的文件变化都可以通过这个结构扩散,从而达到多机同步的目的;这一结构的缺点是一旦server1当机失效,同步就会
失败。因此,有必要的话,可以组成双主服务器的星型结构来弥补;
unison+inotify实现文件双向自动同步的更多相关文章
- unison+inotify-tools触发式双向自动同步
双向实时数据同步部署 首先添加服务器ssh信任,即免秘钥登陆 Web1:192.168.10.36 Web2:192.168.10.37 分别在web1和web2上执行以下命令 mkdir ~/.ss ...
- Linux(centos5.0+)unison+inotify-tools触发式双向自动同步
192.168.1.11是server1, 192.168.1.22是server2. [1]安装inotify-tools 各大linux发行版本都有inotify-tools软件包,建议通过y ...
- [转]CENTOS 使用RSYNC+INOTIFY实现文件实时自动同步
FROM : http://www.qiansw.com/centos-rsync-inotify-file-sync.html 生产环境中的两台web服务器,有个目录需要完全一样.使用rsync和i ...
- unison + inotify 实现文件实时双向同步部署步骤
unison + inotify 实现文件实时双向同步部署步骤 一. Unison简介 Unison是Windows.Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或 ...
- Linux下svn提交文件后自动同步更新到网站目录
有时,对于多文件需要上传到服务器的时候将会很麻烦,但是如果使用svn的钩子脚本就容易实现本地提交svn后,自动同步代码文件到远程服务器的网站目录下,而不必手动上传了. 首先,在网站目录下checkou ...
- unison+inotify实现数据双向同步
unison是一款跨windows/linux/MAC OS平台的文件同步工具,不仅支持本地对本地同步,也支持通过SSH.RSH和Socket等网络协议进行同步.更棒的是,unison支持双向同步操作 ...
- nfs+rsync+inotify实现文件的实时同步
准备三台服务器进行测试: nfs_server:192.168.12.110 web_server:192.168.12.111 rsync_server:192.168.12.112 网络规划图: ...
- 12.2 中的Data Guard Standby 密码文件自动同步 (Doc ID 2307365.1)
Data Guard Standby Automatic Password file Synchronization in 12.2 (Doc ID 2307365.1) APPLIES TO: Or ...
- linux web服务器静态资源的处理 unison+inotify双向同步
linux web服务器静态资源的处理 unison+inotify双向同步 http://monkeyzhu.blog.51cto.com/5764358/1324391 简介 unison可以使两 ...
随机推荐
- js 倒计时(转)
第一个(毫秒级): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...
- delphi TServerSocket阻塞线程单元 实例
TServerSocket阻塞线程单元,希望对你有所帮助.需要注意的是:1.如果你使用TServerSocket的stNonBlocking模式,重写TServerClientThread线程时要重载 ...
- centos 6.5 安装 buildbot-slave 0.8.9
公司服务器多数都用的centos,这个是大环境,改不了,只好研究怎么安装buildbot-slave. buildbot-master倒是没有问题,可控,自己弄了一个ubuntu14来玩. cento ...
- 使用go tool pprof分析内存泄漏、CPU消耗
go中提供了pprof包来做代码的性能监控,在两个地方有包: net/http/pprof runtime/pprof 其实net/http/pprof中只是使用runtime/pprof包来进行封装 ...
- ORACLE快速彻底Kill掉的会话(转载)
转载:http://www.cnblogs.com/kerrycode/p/4034231.html 在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid ...
- Arch Linux 休眠到文件
创建文件: # fallocate -l 4G /swapfile # chmod 600 /swapfile # mkswap /swapfile# swapon /swapfile 编辑/etc/ ...
- unix环境C编程之日期时间转换
1.理清概念 1.1.日历时间: 含义:国际标准时间1970年1月1日00:00:00以来经过的秒数. 数据类型:time_t.实际上是long的别名. 1.2.tm结构时间: 含义:结构 ...
- jdk线程的生产者消费者问题
同步代码块实现生产者消费者模式 class Person { private String name; private String sex; private Boolean isEmpty = Bo ...
- appium的xpath定位
做自动化,元素定位是我们遇到的第一个困难.总是会有各种各样的问题,导致我们定位不到元素.前面一篇博客也写了元素定位的几种方法,今天主要分享一下xpath的定位方法. 这里我们仍然拿计算器举例. 比如我 ...
- Azure磁盘的吞吐量测试
Azure的高级存储具有吞吐量大,延迟低的特点,非常适合时间关键型的应用程序(如SQL Server, Oracle, Redis等). 但高级存储同时具有价格高的特点,用户往往对其实际的性能数据较为 ...