Lsyncd2实时文件同步系统在Gentoo Linux emerge安装+rc-update标准化应用

本文档在lsyncd 2.04 环境下测试通过,其配置文件与 lsyncd 1.X 版本不兼容。
1 、安装lsyncd 2
# emerge lsyncd
可以看到
>>> Emerging (1 of 1) app-admin/lsyncd-2.0.4-r1
字样

2 、安装rsyncd ,据说这个配合 lsyncd 才能达到效果
# emerge rsync
可以看到
>>> Emerging (1 of 1) net-misc/rsync-3.0.8
如果你是幸运的,没有报错,就算安装上了

3 、 # nano /etc/lsyncd.conf.xml

settings = {
   logfile    = "/var/log/lsyncd.log",
   statusFile = "/var/log/lsyncd.status",
   nodaemon   = true,
}
sync{default.rsync, source="/var/log/source", target="/var/log/dest"}

4 、  # nano /etc/init.d/lsyncd
#!/sbin/runscript
# lsyncd
# description: Live Syncing (Mirror) Daemon
# chkconfig: 2345 90 10
# processname: lsyncd
extra_commands="checkconfig"
RETVAL=0
PROCNAME=lsyncd
CONFFILE=/etc/${SVCNAME}.conf.xml
PIDFILE=/var/run/${SVCNAME}.pid
depend() {
        use dns
        need net
}

checkconfig() {
        if [ ! -f "${CONFFILE}" ]; then
                eerror "${CONFFILE} does not exist!"
                return 1
        fi

        ebegin "Checking ${CONFFILE}"
        eend $?
}


start()
{
        ebegin "Starting ${SVCNAME}"
        start-stop-daemon --start --exec /usr/bin/lsyncd \
                --pidfile "${PIDFILE}" "${CONFFILE}"
        eend $?
}

stop()
{
        if [ "${RC_CMD}" = "restart" ]; then
                checkconfig || return 1
        fi
        ebegin "Stopping ${SVCNAME}"
        start-stop-daemon --stop --exec /usr/bin/lsyncd \
                --pidfile "${PIDFILE}"
        eend $? "Failed to stop lsyncd"
        rm -f  "${PIDFILE}"
}


5 、最后设定
# chmod 755 /etc/init.d/lsyncd   设定可执行
# rc-update add lsyncd default   设定开机自动执行
6 、本机两个不同目录的同步测试
# mkdir /var/log/source   建立源目录
# mkdir /var/log/dest   建立目标目录

# /etc/init.d/lsyncd start     启动服务
# cp /var/log/lastlog /var/log/source    向源目录传输文件

# ls -l  /var/log/dest    在目标目录看到文件

7 、不同机器同步测试
由于在初始设定文件中加入一行
#nano /etc/lsyncd.conf.xml 
插入
sync{default.rsync, source="/var/log/source", target="10.9.10.122:/var/log/"}

# cd /var/log/source
# mv lastlog lxdlog
# ssh [email protected]
登录到10.9.10.122 服务器
# ls -l /var/log
可以看到如下结果:
log # ls -l
-rw-r--r-- 1 root root 292876 Dec 10 17:59 lxdlog
不同机器同步测试成功了

8 、不同机器文件同步后的权限问题
sync{default.rsync, source="/data/mysql", target="10.9.10.122::mysql_vip", rsyncOpts="-ltuspog"}
[mysql_vip]
uid = mysql
gid = mysql
path = /data/mysql
comment = mysql_vip
ignore error
read only = no

你可能感兴趣的:(linux,lsyncd)