Использовать lsyncd для обновления локальной папки с удаленного источника?
Я использовал lsyncd для синхронизации локальной папки с сервером, которым я владею, используя rsyncssh с файлом конфигурации, например так:
settings = {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status"
}
sync {
default.rsyncssh,
source = "/Users/user/source",
host = "root@xxx.xxx.xxx.xxx",
targetdir = "/tmp/data",
rsync = { binary = "/usr/local/bin/rsync" }
}
Теперь я хочу выполнить "вытягивание" для синхронизации локального каталога на другом компьютере (в другой сети) с этим удаленным сервером.
Я использую этот файл конфигурации:
settings = {...}
sync {
default.rsync,
source = "root@xxx.xxx.xxx.xxx:/tmp/data",
target = "/home/user/dest",
rsync = { binary = "/usr/local/bin/rsync", _extra = { "-P", "-e", "ssh" } }
}
но я получил эту ошибку:
Error: failure getting absolute path of [root@xxx.xxx.xxx.xxx:/tmp/data]
Error: Cannot access source directory: root@xxx.xxx.xxx.xxx:/tmp/data
Конечно / tmp / data существует, любой намек на то, что я делаю не так?
Знаете ли вы, возможно ли использовать lsyncd с rsync так, как я его использую, чтобы поддерживать локальную папку "актуальной" с удаленным источником? Или я могу использовать rsyncssh с удаленным источником?
Спасибо!
1 ответ
lsyncd не может этого сделать, потому что он не спроектирован таким образом. Он предназначен для использования событий inotify для мониторинга каталога, а затем запускает rsync для выполнения тяжелой работы. inotify по своей сути является локальной концепцией, а lsync фактически не выполняет никаких сетевых коммуникаций.
Вам нужно запустить на сервере службу lsyncd, которая запустит rsync, настроенный для подключения к вашему клиентскому компьютеру.
Это означает, что вам нужно настроить ssh-сервер на локальном компьютере. Если ваша машина не имеет подходящего доменного имени /IP-адреса или находится за NAT или брандмауэром, вам необходимо настроить ssh -R
Обратный туннель и маршрутизация вашего сервера к клиенту rsync через это.
Как только он будет настроен, он будет работать, но, честно говоря, вы можете обнаружить, что проще использовать SyncThing.