lsyncdをインストールした時のメモです。
通常はrsyncモードで動かすと思いますが、今回の要件では
ローカルでのディレクトリ同期だったので、directモードにしました。
本家のgithub
lsync依存パッケージのインストール
$ yum list installed | egrep "libxml2-devel|lua-devel|lua-static" //入っているかどうかの確認
$ sudo yum -y install libxml2-devel lua-devel lua-static
lsyncdのインストール
lsyncdはrpmforgeのリポジトリにあります。
リポジトリ追加を行っていない場合は、別途リポジトリの追加が必要です。
$ sudo yum install -y lsyncd
version 2.1がインストールされました。
起動オプションの設定
pidfileを吐くように設定します。
$ sudo cp -ap /etc/sysconfig/lsyncd /etc/sysconfig/lsyncd_20150815
$ sudo vi /etc/sysconfig/lsyncd
$ diff -u /etc/sysconfig/lsyncd_20150815 /etc/sysconfig/lsyncd
--- /etc/sysconfig/lsyncd_20150815 2015-08-15 19:16:19.671691805 +0900
+++ /etc/sysconfig/lsyncd 2015-08-15 19:16:51.536611294 +0900
@@ -1,3 +1,3 @@
# Put your lsyncd options here
-#OPTIONS="-pidfile /var/run/lsyncd.pid /etc/lsyncd.conf"
+OPTIONS="-pidfile /var/run/lsyncd.pid /etc/lsyncd.conf"
起動ファイルの修正
リンク先を参考に起動ファイルの修正を行います。
$ sudo cp -ap /etc/init.d/lsyncd /etc/init.d/lsyncd_20150815
$ sudo vi /etc/init.d/lsyncd
$ diff -u /etc/init.d/lsyncd_20150815 /etc/init.d/lsyncd
--- /etc/init.d/lsyncd_20150815 2013-03-20 20:54:23.000000000 +0900
+++ /etc/init.d/lsyncd 2015-08-15 19:20:06.129853473 +0900
@@ -20,7 +20,7 @@
OPTIONS="-pidfile /var/run/lsyncd.pid /etc/lsyncd.conf"
if [ -e /etc/sysconfig/lsyncd ]; then
- /etc/sysconfig/lsyncd
+ source /etc/sysconfig/lsyncd
fi
テストディレクトリ作成
$ cd ~
$ mkdir {src,target}
$ ll
合計 8
drwxrwxr-x 2 vagrant vagrant 4096 8月 15 18:58 2015 src
drwxrwxr-x 2 vagrant vagrant 4096 8月 15 18:58 2015 target
設定ファイルの作成
$ sudo vi /etc/lsyncd.conf
設定ファイルを作成します。
インストールしただけではできないので新規です。
下記はversion2.1での書き方です。
version 2.0ではsettings {
の部分をsettings = {
として、=
でつなげてあげる必要があります。
settings {
logfile = "/var/log/lsyncd.log",
statusFile = "/tmp/lsyncd.stat",
nodaemon = false,
}
sync{
default.direct,
source="/home/vagrant/src/",
target="/home/vagrant/target/"
}
設定値
- logfile
- ログファイルの場所を指定します。
- エラーメッセージとかが表示されます。
- statusFile
- 監視の状態が表示されます。
- どのディレクトリを見張っているかなど
- 初回同期のコマンドイメージなど
- nodaemon
- default.direct
- source
- target
起動
$ sudo /etc/init.d/lsyncd start
lsyncd を起動中: [ OK ]
テスト
$ ll
合計 8
drwxrwxr-x 2 vagrant vagrant 4096 8月 15 19:24 2015 src
drwxrwxr-x 2 vagrant vagrant 4096 8月 15 19:24 2015 target
$ ll -a src/
合計 8
drwxrwxr-x 2 vagrant vagrant 4096 8月 15 19:24 2015 .
drwx------. 5 vagrant vagrant 4096 8月 15 19:24 2015 ..
$ ll -a target/
合計 8
drwxrwxr-x 2 vagrant vagrant 4096 8月 15 19:24 2015 .
drwx------. 5 vagrant vagrant 4096 8月 15 19:24 2015 ..
$ touch src/test.txt
$ ll -a target
合計 8
drwxrwxr-x 2 vagrant vagrant 4096 8月 15 19:26 2015 .
drwx------. 5 vagrant vagrant 4096 8月 15 19:24 2015 ..
-rw-r--r-- 1 root root 0 8月 15 19:26 2015 test.txt
$ echo "hello world" > src/test.txt
$ cat target/test.txt
hello world