Ubuntuにlsyncdを導入

久しぶりに表題を触ったのでメモ。

■ 環境

  • lsyncd 2.1.5
  • Ubuntu 14.04

■ lsyncd

サーバ間のリアルタイム同期を行いたかったので設定を入れ込んだ。使用しているサーバOSは”Ubuntu 14.04“。少し古いが仕方がない。

$ sudo apt-get install lsyncd

インストールされるものは下記のもののようである。

ubuntu@host001:~$ dpkg -L lsyncd
/.
/etc
/etc/init.d
/etc/init.d/lsyncd
/usr
/usr/share
/usr/share/doc
/usr/share/doc/lsyncd
/usr/share/doc/lsyncd/lsyncd.1.txt
/usr/share/doc/lsyncd/README.Debian
/usr/share/doc/lsyncd/changelog.Debian.gz
/usr/share/doc/lsyncd/examples
/usr/share/doc/lsyncd/examples/limagemagic.lua
/usr/share/doc/lsyncd/examples/lecho.lua
/usr/share/doc/lsyncd/examples/lrsync.lua
/usr/share/doc/lsyncd/examples/lrsyncssh.lua
/usr/share/doc/lsyncd/examples/lpostcmd.lua
/usr/share/doc/lsyncd/examples/lgforce.lua
/usr/share/doc/lsyncd/examples/lbash.lua
/usr/share/doc/lsyncd/copyright
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/lsyncd.1.gz
/usr/bin
/usr/bin/lsyncd
ubuntu@host001:~$

設定ファイルのサンプルはLuaで書かれているのだろうか。とりあえず起動スクリプトを確認すると、下記の記述があるのでディレクトリと設定ファイルを準備した。

CONFIG=/etc/lsyncd/lsyncd.conf.lua

元ファイルは”/usr/share/doc/lsyncd/examples/lrsync.lua“にした。

----
-- User configuration file for lsyncd.
--
-- Simple example for default rsync.
--
settings {
        logfile = "/var/log/lsyncd.log",
        statusFile = "/var/tmp/lsyncd.stat",
        statusInterval = 1,
}

sync {
        default.rsync,
        maxDelays = 1,
        source = "/path/to/directory/1/",
        target = "10.0.2.11:/path/to/directory/1/",
        rsync = {
                compress = false,
                _extra = {
                        "--delete",
                        "-a",
                }
        }
}

sync {
        default.rsync,
        maxDelays = 1,
        source = "/path/to/directory/2/",
        target = "10.0.2.11:/path/to/directory/2/",
        rsync = {
                compress = false,
                _extra = {
                        "--delete",
                        "-a",
                }
        }
}

あとはサービスで`lsyncd`を起動し、ログにも特に問題がなさそうなので、設定したディレクトリに試しにファイルを`touch`してみて、同期先サーバのディレクトリに同内容のファイルが同期されているかを確認した。

手っ取り早くサーバ間での同期をするのであれば、やはり”lsyncd“はとっても便利である。

以上。