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 или вносите изменения только в "главный" сервер.