lsyncdをインストールした時のメモです。
通常はrsyncモードで動かすと思いますが、今回の要件では
ローカルでのディレクトリ同期だったので、directモードにしました。
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
- 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