Lsync не обрабатывает файлы в правильном порядке в режиме мастер-мастер / двунаправленная настройка

Я использую LSync для синхронизации веб-корня для двух отдельных серверов CentOS 7, работающих под управлением Apache. Пока что он работает нормально, но иногда я замечаю, что lsync неправильно обрабатывает файлы.

Пример проблемы, с которой я столкнулся: если у меня есть файл с именем hello-world.txt на server01 и server02, и я удаляю его с server01, при запуске lsync вместо удаления с server02 он фактически воссоздает его на сервере01.

Я не нашел ничего в Интернете об этом, и я новичок в использовании lsync, поэтому я не совсем уверен, как это исправить.

Не уверен, что это необходимо, но вот файл конфигурации lsync (/etc/lsyncd.conf):

settings {
    logfile = "/var/log/lsyncd.log",
    statusFile = "/var/log/lsyncd.stat",
    statusInterval = 2
}

sync {
    default.rsync,
    source="/var/www/",
    target="192.168.1.36:/var/www/",
    rsync={
        rsh = "/usr/bin/ssh -l lsync -i /etc/lsync/.ssh/id_rsa", 
    }
}

Любая помощь будет признательна! Спасибо!

1 ответ

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

Вы можете добиться того же эффекта, запустив rsync, что и задание cron. Единственное отличие состоит в том, что lsyncd более отзывчив, когда файлы изменены, и более эффективен, когда файлы простаивают.

С особой осторожностью вы можете настроить lsyncd на обоих серверах, синхронизируя в обоих направлениях, и тогда вы сможете получить то, что вам нужно, но это зависит от того, что обновления не слишком быстрые (когда server01 отправляет обновление на server02, server02 обнаружит это изменение и попытаться отправить его обратно на сервер01, что безвредно, если этот файл снова не изменился). Я бы не рекомендовал эту настройку; используйте SyncThing или вносите изменения только в "главный" сервер.

Другие вопросы по тегам