lsyncd

lsyncd
inotify と rsync を C言語とlua で結合した軽量ミラーリングシステム(デーモン)
inotifyでファイルの変更を検知し、rsyncで同期処理を行う
  大規模なファイル同期システムとして bfsync 等がある

install)
  Fedora系)
    sudo yum install lua lua-devel rsync
    sudo yum install lsyncd
 
  Ubuntu系)
    sudo apt-get install lsyncd

lsyncd.conf)
   設定ファイルは luaファイルなので -- がコメント行

--  lsyncd.conf sample
--  lsyncd -log all lsyncd.conf
--  sudo cp lsyncd.conf /etc
--
settings {
    logfile = "/var/log/lsyncd.log",
    statusFile = "/tmp/lsyncd.status",
    nodaemon = false,
    maxProcesses = 4,
    statusInterval = 1
}

sync {
    default.rsync,
    source = "/home/proj/",
    target = "/opt/Backup/proj/",
    rsync = {
        binary = "/usr/bin/rsync",
        archive = true,
        ipv6 = false,
        compress = false
        }
}

sync {
    default.rsync,
    source = "/home/data/",
    target = "dac72::Soft/",
    excludeFrom = "/home/data/Lsyncd/exclude_files.txt",
    rsync = {
        binary = "/usr/bin/rsync",
        archive = true,
        ipv6 = false,
        whole_file = false,
        compress = false
        }
}

sync { ...

---------
exclude_files.txt の例
    /Mail/
    /tmp/

使い方
    rsync サーバーが起動している事を確認
      同一ホスト内でだけ使用する場合にはサーバー起動の必要はない
    デーモンを起動するのが一般的だが
    コマンドラインからも使用出来る
     lsyncd -rsync /Data2/Backup/data/ /home/data/ 
     lsyncd -log all lsyncd.conf

rsyncd サーバーの設定
   max connections = 12
   lsyncd.conf のsyncの数より大きい事、または
   lsyncd のプロセス数を maxProcesses で制限する
     lsyncd.conf で
       maxProcesses = 6, 

inotify の設定
  inotifyは監視できるファイル数の上限が max_user_watches で設定されています。 
  デフォルトでは8192個までしか監視できないので、sysctl でパラメータを変更する。 
  確認)
    sysctl -a | grep fs.inotify

     fs.inotify.max_user_watches = 8192 

  変更)
     edit /etc/sysctl.conf (/etc/sysctl.d/xxx.conf)
        fs.inotify.max_user_watches=524288 
     sudo sysctl -p

lsyncd デーモンを起動する
 Fedora系)
   sudo cp lsyncd.conf  /etc
   sudo systemctl enable lsyncd.service
   sudo systemctl start lsyncd.service

 Ubuntu系)
   sudo mkdir /etc/lsyncd
   sudo cp lsyncd.conf  /etc/lsyncd/lsyncd.conf.lua
   sudo edit /etc/default/rsync
        RSYNC_ENABLE=true

   sudo edit /etc/init/lsyncd.conf
    ------------------------------------------------------
    description "lsyncd file syncronizer"
  
    start on (starting network-interface
        or starting network-manager
        or starting networking)
  
    stop on runlevel [!2345]
    expect fork
  
    respawn
    respawn limit 10 5
  
    exec /usr/bin/lsyncd /etc/lsyncd/lsyncd.conf.lua
    -----------------------------------------------------------
     デーモン設定の確認
     sudo initctl check-config lsyncd

   sudo initctl start lsyncd
    

to Top
ホームページ へ

Last modified:2014-05-04; First Release:2014-04-24