zoukankan      html  css  js  c++  java
  • Linux目录同步unison

    最近研究目录同步.最初考虑的是rsync,用的时候发现只能单向同步而且要实现双向还得用inotify.后来发现unison能解决双向同步的问题而且相比rsync简单的多.

    系统平台: CentOS 6.4 x64

    配置过程:
    1.安装 yum install unison.x86_64  (软件包在rpmforge源里)
      同步的两端都要安装且版本必须相同.
    2.配置双机ssh信任
      由于unison在远程同步文件夹要登陆远程服务器,因此要配置两机互相信任
      本地机: 172.16.253.202
      远程机: 172.16.253.201

      1. 在两台机器上创建 RSA密钥
      以下操作要在本地机和远程机上都执行一遍
      (1)以 root 用户登录
      (2)在 root 用户的主目录内创建.ssh 目录并设置正确的权限
        chmod 700 ~/.ssh
      (3)使用 ssh-keygen 命令生成第 2 版本的 SSH 协议的 RSA 密钥
        ssh-keygen -t rsa
        使用默认的私钥(key)和公钥(public key)位置.
        私钥密码(passphrase)为空.
      2. 添加密钥到授权密钥文件(authorized key file)中
        cd ~/.ssh
        ssh 10.178.1.132 cat /root/.ssh/id_rsa.pub >> authorized_keys
        ssh 10.178.1.110 cat /root/.ssh/id_rsa.pub >> authorized_keys
        密钥文件复制到远程端:
        scp authorized_keys 10.178.1.110:/root/.ssh/

      3.测试
      ssh 10.178.1.132 date
      ssh 10.178.1.110 date
      如果不需要输入密码就出现系统日期,说明 SSH 配置成功。

    3.使用配置文件同步.

      配置文件位置: ~/.unison/default.prf

      设置: 

    # Unison preferences file
    root = /opt/unison
    root = ssh://root@172.16.253.201//opt/unison/
    batch = true

      batch = true,表示全自动模式,接受缺省动作,并执行

      执行unison命令即可执行同步.

    默认是运行一次unison进行一次同步, 只能写在cron里作为定时同步. 利用inotify可以实现触发式同步,每次对目录中文件修改都会触发一次同步操作,解决了即时性的问题.

    1.安装inotify软件包.
      yum install inotify-tools -y  (需先安装epel源)

    2.编写同步脚本

    #!/bin/bash
    
    # add this to /etc/rc.local 
    
    /usr/bin/inotifywait -mrq -e modify,delete,create,attrib /opt/unison | while read file
    do
        unison
    done

    3.系统启动时执行脚本文件,添加到/etc/rc.local.执行命令后加 &保证后台运行.

     echo '/DroneStorage/Scriptes/inotify.sh &' >> /etc/rc.local

    参考: http://blog.163.com/yaning_softwo/blog/static/37837721201131103546979/

        

      

        


      

      

  • 相关阅读:
    手机app数据的爬取之mitmproxy安装教程
    Scrapy库的安装(windows版)
    Cannot uninstall 'html5lib'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
    HTTP 599: SSL certificate problem: unable to get local issuer certificate错误
    requests禁止重定向
    python多线程爬取-今日头条的街拍数据(附源码加思路注释)
    python爬虫-淘宝商品密码(图文教程附源码)
    20131214-HTML基础-第二十一天
    20131214-EditPlus快捷键-第二十一天
    20131209-数据库导入导出数据-sqlhelper-第十七天
  • 原文地址:https://www.cnblogs.com/viator42/p/3433169.html
Copyright © 2011-2022 走看看