lcync on centos5系 (前篇)

広瀬アリスさん、いつぞやに登場したすずちゃんの姉ですね。
この姉妹は本当にかわいい

f:id:linesnova:20130918140002j:plain

前置

そもそもlsyncとはリアルタイムでファイルの同期をしてくれるものです。
今回は、諸事情によりcentos5系で、動かす実践を行いたいと思います。
5系では、lsyncの2.0.7を使用します。2.1系は相性が悪いっぽいです。

接続元の設定

lsyncと関連物のダウンロード
sudo su -

wget --no-check-certificate https://www.atomicorp.com/channels/source/atomic-release/atomic-release-1.0-16.el5.art.noarch.rpm

rpm -Uvh atomic-release-1.0-16.el5.art.noarch.rpm

yum install lua-devel
 
wget --no-check-certificate https://github.com/downloads/axkibe/lsyncd/lsyncd-2.0.7.tar.gz
tar zxvf lsyncd-2.0.7.tar.gz
cd lsyncd-2.0.7
./configure && make && make install
設定
vim /etc/lsyncd.conf
settings = {
  logfile = "/var/log/lsyncd.log",
  statusFile = "/tmp/lsyncd.stat",
  nodaemon = false
}


sync {
  default.rsync,
  source="/var/upload/",
  target="xx.xxx.xx.xx::data/",
  rsyncOpts = {
        "-av",
        "--delete"
  }
}
vim /etc/rc.d/init.d/lsyncd
#!/bin/bash
#
# lsyncd
#
# chkconfig: - 99 20
# description: lsyncd auto start script

start() {
    /usr/local/bin/lsyncd /etc/lsyncd.conf
}

stop() {
    /bin/kill -9 `/sbin/pidof lsyncd`
    until [ -z $(/sbin/pidof lsyncd) ]; do :; done
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    status)
        pid=`pidof lsyncd`
        if [ $? -eq 0 ]; then
            echo "lsyncd (pid $pid) is running..."
        else
            echo "lsyncd is not running"
        fi
        ;;
    *)
        echo "Usage: lsyncd {start|stop|restart|status}"
        exit 1
esac

exit $?
権限から起動まで
#権限付与
chmod +x /etc/rc.d/init.d/lsyncd
#lsyncd起動スクリプトをchkconfigへ登録
chkconfig --add lsyncd
#lsyncd自動起動設定
chkconfig lsyncd on
#起動
/sbin/service lsyncd restart

その他

memoryがずっと常駐していると、メモリリークになる恐れがあるので、
cronで毎日一回メモリーを解放をしたほうがよい(推奨)

#毎日一回 メモリーを解放してあげる
0  1 *  *  *       /sbin/service lsyncd restart