LINUX.ORG.RU

lsyncd restart app

 , ,


0

1

настроен lsyncd

sync {
        default.rsyncssh,
        source="/home/ttt/",
        host=server,
        targetdir="/srv/hhh/",
        exclude={
                        "/perl.pm",
                        "/c.so",
                        "/c.pm",
        },
        delay=10,
        rsync = {
                _extra = {"-e", "/usr/bin/ssh -p 2222 -i /root/.ssh/id_rsa -o StrictHostKeyChecking=no -o BatchMode=yes"}
        },
        ssh = {
                port = 2222
        }
}
end
все нормально синхронизируется, но как мне перезапускать мое приложение, если были изменены файлы, т.е. если в каталоге /home/ttt изменился файл, то на server в /srv/hhh мне надо перезапустить приложение?



Последнее исправление: Garcia (всего исправлений: 1)

lsyncd как раз и занимается отслеживанием изменений в локальном каталоге и запуском процедуры синхронизации.

Сначала, при запуске, синхронизация принудительная, а потом только при изменениях.

Обратную процедуру ( отслеживание изменения удаленного каталога ) он делать не умеет.

vel ★★★★★
()

Все зависит от приложения.

Все что запускается по запросам обычно не требует специального перезапуска. А вот сервисы обычно требуют перезапуска.

vel ★★★★★
()
Ответ на: комментарий от vel

сделал так

sync {
        default.rsyncssh,
        source="/home/ttt/",
        host=server,
        targetdir="/srv/hhh/",
        exclude={
                        "/perl.pm",
                        "/c.so",
                        "/c.pm",
        },
        delay=10,
        rsync = {
                binary = "/home/bin/t.sh"
        },
        ssh = {
                port = 2222
        }
}
end

и сам скрипт t.sh

#!/bin/bash
/usr/bin/rsync "$@"
result=$?
(
  if [ $result -eq 0 ]; then
     ssh -p 2222 root@server "cd /srv/hhh && ./c.pl stop"
  fi
) >/dev/null 2>/dev/null </dev/null

exit $result

Garcia
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.