Мы хотим синхронизировать каталог, называемый docs между двумя хостами, называемый server и laptop , используя unison . Итак, у нас есть unison профиль docs.prf который определяет корни и дает список предпочтительных правил для синхронизации. Команда unison всегда запускается на laptop . Проблема заключается в том, что иногда синхронизация выполняется через локальную сеть, в этом случае server имеет IP-адрес, например 10.xxx.xxx.xxx а сервер идентифицируется как server.localdomain , но иногда это делается через Интернет, а IP-адрес server - это что-то вроде 135.xxx.xxx.xxx а server известен как server.domain.com .

Конечно , мы хотим , чтобы использовать один и те же ага данных ar... в обеих случаях и те же правила , определенных в docs.prf создавая таким образом второй профиль не является решением проблемы. Я пытался использовать в unison параметры командной строки, чтобы изменить имя удаленного хоста (например , -rootalias -host но ничего не получилось. У кого-нибудь есть идеи?

1 ответ1

1

Я нашел выход, используя сценарий. Сначала он пингует server.localdomain . Если есть ответ, мы находимся в частной сети, конфигурация по умолчанию, поэтому она работает как обычно. В случае сбоя проверки связи сценарий создает временный файл /tmp/sshRedirect содержащий

Host     server.localdomain
HostName server.domain.com

и в unison называется с опциями -sshargs -FsshRedirect (это важно , что там нет места после того, как F Таким образом, унисон прозрачно перенаправляется.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .