2016-04-06 1 views
0

Я использовал lsyncd синхронизировать локальную папку на сервере я самостоятельно, используя rsyncssh с конфигурационный файл, например так:Использовать lsyncd для обновления локальной папки с помощью удаленного источника?

settings = { 
     logfile = "/var/log/lsyncd/lsyncd.log", 
     statusFile = "/var/log/lsyncd/lsyncd.status" 
} 
sync { 
     default.rsyncssh, 
     source = "/Users/user/source", 
     host = "[email protected]", 
     targetdir = "/tmp/data", 
     rsync = { binary = "/usr/local/bin/rsync" } 
} 

Теперь я хочу, чтобы выполнить «тянуть», чтобы синхронизировать локальный каталог на другой (другой сети) с этим удаленным сервером.

Я использую этот конфигурационный файл:

settings = {...} 
sync { 
     default.rsync, 
     source = "[email protected]:/tmp/data", 
     target = "/home/user/dest", 
     rsync = { binary = "/usr/local/bin/rsync", _extra = { "-P", "-e", "ssh" } } 
} 

, но я получил эту ошибку:

Error: failure getting absolute path of [[email protected]:/tmp/data] 
Error: Cannot access source directory: [email protected]:/tmp/data 

Конечно/TMP/данных существует, любой намек на то, что я делаю не так?

Знаете ли вы, можно ли использовать lsyncd с rsync, как я использую его, чтобы поддерживать локальную папку с обновленным исходным кодом? Или я могу использовать rsyncssh с удаленным исходным кодом?

Спасибо!

ответ

1

lsyncd не может этого сделать, потому что он не разработан таким образом. Он предназначен для использования inotify событий для мониторинга каталога, а затем запуска rsync для тяжелого подъема. inotify по своей сути является локальной концепцией, и lsync фактически не выполняет никаких сетевых коммуникаций.

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

Это означает, что вам нужно настроить ssh-сервер на вашем локальном компьютере. Если ваш компьютер не имеет подходящего имени домена/IP-адреса или находится за NAT или брандмауэром, вам необходимо настроить обратный туннель ssh -R и проложить маршрут через rsync от сервера к клиенту.

Как только он настроен, он будет работать, но, честно говоря, вы можете обнаружить, что проще использовать SyncThing.

 Смежные вопросы

  • Нет связанных вопросов^_^