一、Linux(centos5.0+)unison+inotify-tools 触发式双向自动同步
192.168.1.11是server1,
192.168.1.22是server2。
【1】安装inotify-tools
  各大linux发行版本都有inotify-tools软件包,建议通过yum方式安装:
  [root@server1 ~]#yum install inotify-tools
  [root@server2 ~]#yum install inotify-tools
******说明开始*********************************
  郁闷的是!我公司服务器上竟然没有找到inotify-tools这个包!
  于是只能网上搜包,编译安装了:
  [root@server1 ~]# wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
  [root@server1 ~]# tar xzvf inotify-tools-3.14.tar.gz
  [root@server1 ~]# cd inotify-tools-3.14
  [root@server1 ~]# ./configure
  [root@server1 ~]# make
  [root@server1 ~]# make install

[root@server2 ~]# wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
  [root@server2 ~]# tar xzvf inotify-tools-3.14.tar.gz
  [root@server2 ~]# cd inotify-tools-3.14
  [root@server2 ~]# ./configure
  [root@server2 ~]# make
  [root@server2 ~]# make install  
******说明结束*********************************
【2】安装unison
通过源码包编译安装unison,需要Objective Caml compiler。
1)安装ocaml到/usr/local/src(建议版本3.0以上,安装路径可自己定义)
  [root@server1 ~]# cd /usr/local/src  
  [root@server1 src]# wget http://caml.inria.fr/pub/distrib/ocaml-3.12/ocaml-3.12.1.tar.gz
  [root@server1 src]# tar -zxvf ocaml-3.12.1.tar.gz
  [root@server1 src]# cd ocaml-3.12.1
  [root@server1 ocaml-3.12.0]# ./configure
  [root@server1 ocaml-3.12.0]# make world opt
  [root@server1 ocaml-3.12.0]# make install
2)编译安装unison(unison版本可以自行去网上下载)
  [root@server1 src]# wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.40.63.tar.gz
  [root@server1 src]# tar -xzvf unison-2.40.63.tar.gz
  [root@server1 src]# cd unison-2.40.63
  [root@server1 unison-2.40.63]# make UISTYLE=text
  [root@server1 unison-2.40.63]# make install
******说明开始*********************************
  执行make install过程中,可能会出现以下错误提示:
  mv: cannot stat '/root/bin//unison': No such file or directory
  make: [doinstall] Error 1 (ignored)
  cp unison /root/bin/
  cp: cannot create regular file '/root/bin/': Is a directory
  make: *** [doinstall] Error 1
  用百度在线翻译了一下,大致意思是:找不到/root/bin目录。
  因为unison默认是将unison文件拷贝到/root/bin目录,但Linux默认没有该目录,所以我们需要将生成的可执行文件unison复制到系统PATH目录。
  [root@server1 unison-2.40.63]# whereis $PATH  //查看系统PATH目录
   bin: /usr/local/bin
  [root@server1 unison-2.40.63]# cp unison /usr/local/bin  
******说明结束*********************************
3)将可执行文件unison上传到server2主机
  [root@server1 unison-2.40.63]# scp unison root@192.168.1.22:/root/
******说明开始*********************************
  远程连接可能会出现:
  Are you sure you want to continue connecting (yes/no)? 
  别犹豫,敲个 yes 吧,然后出现:
root@192.168.1.22's password:
  别发呆,输入server2的密码吧,然后出现:
  unison               100% 1473KB   36k/s   00:40
  说明unison已经成功上传至server2了。
  双机没配置信任key之前,你远程连接都需要输入密码滴!
******说明结束*********************************
4)登陆server2主机,将unison复制到PATH目录
  [root@server2 ~]# cp unison /usr/local/bin
【3】配置双机信任(ssh key)  
1)server1创建key
  [root@server1 ~]# ssh-keygen -t rsa
******说明开始********************************* 
  是不是出现了好多英文句子,看不懂不怪你,我也看不懂,哈哈!
  用百度在线翻译一下,大致意思是:什么公钥,密钥存放位置了,是否需要私钥密码了之类的。
  别理会,敲回车就成!之后,将生成一对密钥,id_rsa(私钥文件)和id_rsa.pub(公钥文件),保存在/root/.ssh/目录下。
******说明结束*********************************
2)将server1的公钥添加到server2的authorized_keys文件
  --将钥文件传到server2主机
  [root@server1 ~]# scp ~/.ssh/id_rsa.pub root@192.168.1.22:/root
******说明开始*********************************
  远程连接可能会出现:
  Are you sure you want to continue connecting (yes/no)? 
  别犹豫,敲个 yes 吧,然后出现:
root@192.168.1.22's password:
  别发呆,输入server2的密码吧,然后出现:
  id_rsa.pub                 100%  394     0.4KB/s 
  说明公钥已经成功上传至server2了。
  双机没配置信任key之前,远程连接都需要输入密码滴!
******说明结束*********************************
  --登录server2,将公钥添加到authorized_keys文件中
  [root@server2 ~]# mkdir .ssh
  [root@server2 ~]# chmod 700 .ssh
  [root@server2 ~]# mv ~/id_rsa.pub ~/.ssh/authorized_keys
  [root@server2 ~]# chmod 600 ~/.ssh/authorized_keys
3)server2创建key
  [root@server2 ~]# ssh-keygen -t rsa
******此处说明参看上面**************************
4)将server2的公钥添加到server1的authorized_keys文件
  --将钥文件传到server1主机
  [root@server2 ~]# scp ~/.ssh/id_rsa.pub root@192.168.1.11:/root
******此处说明参看server1************************** 
  --登录server1,将公钥添加到authorized_keys文件中
  [root@server2 ~]# mv ~/id_rsa.pub ~/.ssh/authorized_keys
******说明开始*********************************
  此处不用新建.ssh文件夹,不用chmod权限了?
  server1当时创建key时候,.ssh等文件夹就已经存在了!
******说明结束*********************************
5)重启server1,server2的ssh服务
  [root@server1 ~]# /etc/init.d/sshd restart
  [root@server2 ~]# /etc/init.d/sshd restart
【4】测试是否配置成功  
  [root@server1 ~]# ssh root@192.168.1.22  date
  [root@server2 ~]# ssh root@192.168.1.11  date
  不用提示输入密码即可互相得到对方的时间,就证明配置成功了。
【5】使用说明
  在任意一个server机上执行unison命令:
  [root@server1 ~]# unison -bath /home/server1p_w_picpath/ ssh://192.168.1.22//home/server2p_w_picpath/
【6】创建.sh脚本来执行同步
1)server1上创建脚本unison2.sh:
 #/bin/bash
 ip2="192.168.1.22"  
 src2="/home/server1p_w_picpath/"
 dst2="/home/server2p_w_picpath/"

/usr/bin/inotifywait -mrq -e create,delete,modify,move $src2 | while read line; do
  /usr/bin/unison -batch $src2 ssh://$ip2/$dst2
  echo -n "$line " >> /var/log/inotify.log
  echo `date | cut -d " " -f1-4` >> /var/log/inotify.log
 done
2)server2上创建脚本unison1.sh:
 #/bin/bash 
 ip1="192.168.1.11" 
 src1="/home/server2p_w_picpath/"
 dst1="/home/server1p_w_picpath/"

/usr/bin/inotifywait -mrq -e create,delete,modify,move $src1 | while read line; do
  /usr/bin/unison -batch $src1 ssh://$ip1/$dst1
  echo -n "$line " >> /var/log/inotify.log
  echo `date | cut -d " " -f1-4` >> /var/log/inotify.log
 done 
【7】执行.sh脚本
  server1,server2各自执行.sh即可。

【8】如果要实现自动运行,而我们又不用管他们的话,可以用crontab来做任务,并在一台服务端上开启监控模式,日志保存到自己

自己定义的目录下,这样当我门查看同步了那些文件、什么时间同步的都会一目了然。

二、centos下支持.rar压缩文件

Linux默认支持的压缩文件格式为 .gz,而win平台下支持得压缩文件格式为 .rar。这样在部署不同生产环境中,数据的压缩传输就会出现问题。所以,让Linux支持 .rar 就行了。以方便win平台数据快速移植到linux系统。

【1】安装rar for linux

[root@server1 ~]# wget http://www.rarsoft.com/rar/rarlinux-3.6.0.tar.gz

[root@server1 ~]# tar zxvf rarlinux-3.6.0.tar.gz

[root@server1 ~]# cd rar

[root@server1 ~]# make install

【2】使用命令

解压rar文件:

[root@server1 ~]# unrar x gagamatch.rar

压缩为rar文件:

[root@server1 ~]# rar gagamatch.rar /home/wwwroot/gagamatch/

select version(),current_date;  //mysql版本

转载于:https://blog.51cto.com/lucifer119/1230254

Linux下做双向同步相关推荐

  1. Linux下文件备份和同步的工具软件

    Linux下文件备份和同步的工具软件 1)通过本次实训,熟悉软件项目配置管理相关内容; 2)熟悉shell编程 makefile的应用. 3)掌握文件IO.标准IO库的使用,掌握Linux下多进程.多 ...

  2. 【Linux下】 线程同步 生产者与消费者模型

    文章目录 [Linux下] 线程同步 生产者与消费者模型 线程同步 同步概念与竞态条件 条件变量 条件变量本质 操作条件变量 初始化和销毁条件变量 等待 唤醒 通过条件变量实现的简单线程同步例子 为什 ...

  3. 如何在linux下用rsync同步文件以及它的用法和scp的用法

    如何在linux下用rsync同步文件以及它的用法和scp的用法 2010年06月06日 root@legend-laptop:/home/legend/httpd~/cgi-bin# rsync - ...

  4. 性能测试入门(六)windows及Linux下做压力测试的注册表设置

    windows及Linux下做压力测试的注册表设置 from: http://www.cnblogs.com/tianzhiliang/articles/2400176.html TcpTimedWa ...

  5. winpe访问linux磁盘,Linux下做pxe引导winpe

    Linux下做pxe,需要安装tftpd-hpa或atftpd,但是都可能遇到一件郁闷的事情--服务无法启动.使用ps aux |grep tftp看不到atftpd或者tfypd-hpa,但是net ...

  6. 如何在linux下做软raid

    如何在linux下做软raid?希望以下介绍能对朋友们有所帮助和启发! 在虚拟机系统中添加一块10g的硬盘为sdb,将硬盘分5个逻辑盘分别是sdb{5,6,7,8,9},每个盘的大小是1G. 首先利用 ...

  7. Linux下做一个arp欺骗程序6,LINUX下防ARP欺骗攻击

    arp欺骗的原理不多述,基本就是利用发送假的arp数据包,冒充网关.一般在网上通讯的时候网关的IP和MAC的绑定是放在arp 缓存里面的,假的arp包就会刷新这个缓存,导致本该发送到网关的数据包发到了 ...

  8. centos mysql单向同步,虚拟机下实现Centos5.6下Mysql双向同步配置

    环境 注意虚拟机环境下的NAT模式,务必把IP设置成固定的 Master操作系统:Centos 5.6 Ip:192.168.214.138 Slave操作系统:Centos 5.6 Ip:192.1 ...

  9. Linux下使用rsync同步文件

    遇到的问题是几台游戏服务器,有一台新的服务器之前已经copy(Linux的scp命令)过文件上去,但在测试的过程中发现还是图片无法正常不显示出来,然后用httpwatch去分析请求的资源,发现有一个图 ...

最新文章

  1. Maven学习(八)继承和聚合
  2. ML之FE:特征工程中常用的一些处理手段(缺失值填充、异常值检测等)及其对应的底层代码的实现
  3. Python基于socket实现的TCP客户端
  4. 极客产品经理学习笔记
  5. [bbk3100]第7集 - Chapter 04 - 介绍RAC中CVU工具的使用
  6. LOAM_velodyne学习(四)
  7. 【转】DevOps到底是什么意思?
  8. Javascipt数组去重的几种方式
  9. 庆功会(信息学奥数一本通-T1269)
  10. nodejs-express
  11. 林正刚:写一个大大的“诚”字
  12. NYOJ4——ASCII码排序
  13. 使用mpvue开发小程序需要注意和了解的知识点
  14. 【FireMonkey】StyleBook使用方法
  15. php调用ua_PHP判断判断UA:检测客户端是手机或电脑
  16. window10关闭磁盘bitlocker加密
  17. 毛远丽教授谈机器学习技术在检验医学中的新应用|专家论坛
  18. 学习3D建模多久才能工作呢
  19. c语言符号运算优先级6,c语言运算符号的优先级
  20. DevOps实践|快速提升团队软件开发成熟度,提升研发效能

热门文章

  1. [歌曲]心愿(by 四个女生)
  2. NeHe OpenGL教程 第十课:3D世界
  3. 推荐大家使用的CSS书写规范、顺序
  4. first day
  5. 设计模式之创建型模式
  6. linux中文乱码问题及locale详解
  7. 642-832 GNS3 自搭建拓扑
  8. vue+vuex+leaflet Jest单测踩坑指南
  9. 同一服务器上多个版本的 sqlserver ,如何连接,改变某一实例的端口号
  10. 重写了博客上的代码着色脚本