分别有二台cetnos7服务器,server1与server2,把server1的home目录下的文件同步到server2的home目录下,server2的home目录下的文件同步到server1下,实现文件实时双向同步,并且不破坏原来的文件属性。
服务器名 服务器IP 系统 同步目录
server1 192.168.0.5 centos7 /home
server2 192.168.0.6 cetnos7 /home
server1和2都先安装支持组件

yum install -y groupinstall pcre-devel zlib-devel gcc gcc-c++ autoconf automake make pcre-devel zlib-devel 
yum -y install gcc gcc-c++ autoconf automake make
yum -y install pcre-devel
yum install -y zlib-devel
yum -y install openssl openssl-devel
yum -y install ctags-etags

先做好两台服务器ssh免密码登录:https://www.loshub.com/article/show/346/
下载ocaml最新版为4.07.0,你可以去官方下载最新版:http://caml.inria.fr/

wget http://source.loshub.com/linux/ocaml/ocaml-4.07.0.tar.gz
tar zxvf ocaml-4.07.0.tar.gz
cd ocaml-4.07.0
./configure
make world opt
make install
cd /root

安装unison:下载地址:http://www.seas.upenn.edu/~bcpierce/unison//download/releases/,现在最新版为2.51.2,你也可以去查看有无最新版本可以下载

wget http://source.loshub.com/linux/unison/unison-2.51.2.tar.gz
tar zxvf unison-2.51.2.tar.gz
cd  src
make UISTYLE=text
cp unison /usr/local/bin
cd /root
wget http://source.loshub.com/linux/inotify-tools/inotify-tools-3.14.tar.gz
tar zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure
make&&make install
ln -sv /usr/local/lib/libinotify* /usr/lib/

在server2上同步/home目录

unison -batch -owner -group /home/ ssh://192.168.0.5//home/

关于unison基本命令

unison -help
Usage: unison [options]

or unison root1 root2 [options]
or unison profilename [options]

Basic options:
-auto 自动接受默认(非冲突)操作
-batch 批处理模式:完全不提问
-doc xxx Doc XXX显示文档(“-Doc Topics”列出主题)
-fat FAT为FAT文件系统使用适当的选项
-group 组同步组属性
-ignore xxx 忽略xxx将模式添加到忽略列表
-ignorenot xxx ignorenot xxx将模式添加到ignorenot列表
-nocreation xxx nocreation xxx防止在一个副本上创建文件
-nodeletion xxx nodelion xxx防止在一个副本上删除文件
-noupdate xxx noupdate xxx防止在一个副本上更新和删除文件
-owner 所有者同步所有者
-path xxx 路径xxx要同步的路径
-perms n -perms n同步的权限的一部分
-root xxx 副本的根xxx根(应该正好使用两次)
-silent 无提示打印除了错误消息以外没有其他内容
-terse Terse禁止状态消息
-testserver testserver在连接到服务器后立即退出
-times 时间同步修改时间
-version 版本打印版本并退出
分别在serve1和2上创建脚本,
vi /root/inotify.sh
创建脚本
server1

#/bin/bash
ip2="192.168.0.6"
src2="/home/"
dst2="/home/"
/usr/local/bin/inotifywait -mrq -e create,delete,modify,move $src2 | while read line; do
/usr/local/bin/unison -batch -owner -group $src2 ssh://$ip2/$dst2
echo -n "$line " >> /var/log/inotify.log
echo `date | cut -d " " -f1-4` >> /var/log/inotify.log
done

server2

#/bin/bash
ip2="192.168.0.5"
src2="/home/"
dst2="/home/"
/usr/local/bin/inotifywait -mrq -e create,delete,modify,move $src2 | while read line; do
/usr/local/bin/unison -batch -owner -group $src2 ssh://$ip2/$dst2
echo -n "$line " >> /var/log/inotify.log
echo `date | cut -d " " -f1-4` >> /var/log/inotify.log
done

分别键入以上内容,保存并退出

现在增加权限

chmod a+x /root/inotify.sh

分别在服务器1和2上运行

cd /root
./inotify.sh

在打多开一个ssh工具,创建一个文件试试。
分别在后台运行

cd /root
nohup ./inotify.sh &
分类: linux数据同步 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录