sasha2002 Blog's

Just another blog from admin's

Синхронизация двух директорий посредством Lsyncd в Debian —

Итак делается всё по быстрому за максимум 2-3 часа(это с компиляцией).
apt-get install lua5.1 liblua5.1-0-dev rsync gcc
cd /tmp
wget https://lsyncd.googlecode.com/files/lsyncd-2.1.4.tar.gz
tar -zxvf lsyncd-2.1.4.tar.gz
cd lsyncd-2.1.4
./configure
make && make install


Далее создаём и настраиваем конфиг :
— general settings
settings {
logfile = “/home/USER2/lsyncd.log”,
statusFile = “/home/USER2/lsyncd.status”,
nodaemon = false,
— maxDelays = 900,
maxDelays = 60,
maxProcesses = 6,
}
— synchronization settings 1
sync {
default.rsync,
source=”/home/USER/public_html/”,
target=”/home/USER2/public_html/”,
excludeFrom=”/etc/lsyncd.exclude”,
delay=10,
— delete = false,
delete = true,
rsync = {
binary = “/usr/bin/rsync”,
perms = true,
owner = true,
group = true,
verbose = true,
}
}

Мой lsyncd.exclude :
/templates_c
/cache
/backup
/logs
/export
/admin/includes/configure.php
/admin/includes/configure.org.php
/includes/configure.php
/includes/configure.org.php

Более детальное чтиво тут https://github.com/axkibe/lsyncd/wiki/Lsyncd%202.1.x%20%E2%80%96%20The%20Configuration%20File
Теперь создадим инит скрипт :
nano /etc/init.d/lsyncd
или
vi /etc/init.d/lsyncd
В него пихаем :
#!/bin/bash
#
# lsyncd: Starts the lsync Daemon
#
# chkconfig: 345 99 90
# description: Lsyncd uses rsync to synchronize local directories with a remote
# machine running rsyncd. Lsyncd watches multiple directories
# trees through inotify. The first step after adding the watches
# is to, rsync all directories with the remote host, and then sync
# single file buy collecting the inotify events.
# processname: lsyncd
# . /etc/rc.d/init.d/functions
config=”/etc/lsyncd.conf”
lsyncd=”/usr/local/bin/lsyncd”
lockfile=”/var/lock/lsyncd”
prog=”lsyncd” RETVAL=0
RETVAL=0
start() {
if [ -f $lockfile ]; then
echo -n $”$prog is already running: ”
echo
else
echo -n $”Starting $prog: ”
$lsyncd $config
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch $lockfile
return $RETVAL
fi
}
stop() {
echo -n $”Stopping $prog: ”
killall $lsyncd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f $lockfile
return $RETVAL
}
case “$1” in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo “Usage: lsyncd {start|stop|restart}”
exit 1
esac
exit $?

Делаем его исполняемым :
chmod 755 /etc/init.d/lsyncd
И запускаем :
/etc/init.d/lsyncd start
Проверяем если всё запустилось и работает :
ps ax | grep lsyncd

Если высвечивается ошибка :
Error: Consider increasing /proc/sys/fs/inotify/max_user_watches
нужно прописать в sysctl.conf:
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 65000
fs.inotify.max_queued_events = 16384

А также не забыть всё это применить
sysctl -p


Categorised as: Linux


One Comment

  1. sasha2002 says:

    Если у кого пишет :
    checking for a2x… no
    configure: error: Program ‘a2x’ (package asciidoc) is required
    Устанавливаем :
    aptitude install asciidoc

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.