Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Прочее - [решено] Синхронизация каталогов между двумя удалёнными серверами

Ответить
Настройки темы
Прочее - [решено] Синхронизация каталогов между двумя удалёнными серверами

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6493
Благодарности: 1465


Конфигурация

Профиль | Отправить PM | Цитировать


Привет!

Подскажите, пожалуйста, как синхронизировать два каталога с файлами, которые находятся на удалённых серверах A и B?
Команды будут запускаться на третьем сервере С.

Код: Выделить весь код
|---C---|
|	|
А	B
В интернете много инструкций, где команды запускаются на одном из серверов с файлами через ssh-прокси (здесь это C), но как это делать, запуская команды с самого C?

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 16:08, 28-11-2023

 

Старожил


Сообщения: 464
Благодарности: 95

Профиль | Отправить PM | Цитировать


А чем это обусловлено? Между A и B нет связности?

Отправлено: 16:33, 28-11-2023 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6493
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Есть, но нужно из CI/CD запускать синхронизацию, "C" будет контейнером на worker-е.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 17:36, 28-11-2023 | #3


Старожил


Сообщения: 464
Благодарности: 95

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
Есть, но нужно из CI/CD запускать синхронизацию »
Тогда почему не что-то типа
Код: Выделить весь код
C> ssh user@A "rsync -a /path/to/output/  user@B:/path/to/input"
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:44, 28-11-2023 | #4


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6493
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Там ещё нужно подсунуть ключ.
Код: Выделить весь код
migration_files_prod2preprod:
  stage: migration_files
  image: docker:cli
  tags:
    - docker
  before_script:
    - eval $(ssh-agent -s)
    - cat $SSH_PRIVATE_KEY | tr -d '\r' | ssh-add -
    - apk add rsync
  script:
    - SSH_PRIVATE_KEY_ENV=$(cat $SSH_PRIVATE_KEY)
    - ssh -o StrictHostKeyChecking=no cicd@10.1.0.142 "
      echo "$SSH_PRIVATE_KEY_ENV" > ./SSH_PRIVATE_KEY ;
      chmod 600 ./SSH_PRIVATE_KEY ;
      rsync -Pav -e 'ssh -i ./SSH_PRIVATE_KEY -o StrictHostKeyChecking=no' --dry-run /docker/lk/prod/backend-data/app cicd@10.1.0.138:/docker/lk/preprod/backend-data/app ;
      "
$SSH_PRIVATE_KEY - это файловая переменная. У меня пока не получается прокинуть ключ в rsync, ошибка

Код: Выделить весь код
$ ssh -o StrictHostKeyChecking=no cicd@10.1.0.142 " echo "$SSH_PRIVATE_KEY_ENV" > ./SSH_PRIVATE_KEY ; chmod 600 ./SSH_PRIVATE_KEY ; rsync -Pav -e 'ssh -i ./SSH_PRIVATE_KEY -o StrictHostKeyChecking=no' --dry-run /docker/lk/prod/backend-data/app cicd@10.1.0.138:/docker/lk/preprod/backend-data/app ; "
Warning: Permanently added '10.1.0.142' (ED25519) to the list of known hosts.
Load key "./SSH_PRIVATE_KEY": error in libcrypto
Permission denied, please try again.
Permission denied, please try again.
cicd@10.1.0.138: Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [sender=3.2.7]
Cleaning up project directory and file based variables 00:02
ERROR: Job failed: exit code 12
Много что пробовал - и добавлять пустую строку в конец файла,
Код: Выделить весь код
echo "" > ./SSH_PRIVATE_KEY
и создавать переменную с удалением переносов -
Код: Выделить весь код
  script:
    - SSH_PRIVATE_KEY_ENV=$(cat $SSH_PRIVATE_KEY | tr -d '\r')
без толку.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 11:56, 29-11-2023 | #5


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6493
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Пробовал в отдельно стоящем контейнере, ошибку libcrypto вроде победил (tr -d '\r' всё же нужен), но ругается на отсутствие файла, видимо, на 10.1.0.142 нет файла ключа и всё обламывается:
Код: Выделить весь код
ssh -i SSH_PRIVATE_KEY -o StrictHostKeyChecking=no cicd@10.1.0.142 "rsync -Pav -e 'ssh -i SSH_PRIVATE_KEY -o StrictHostKeyChecking=no' --dry-run /docker/lk/prod/backend-data/app cicd@10.1.0.138:/docker/lk/preprod/backend-data/app"

Warning: Identity file SSH_PRIVATE_KEY not accessible: No such file or directory.
Permission denied, please try again.
Permission denied, please try again.
cicd@10.1.0.138: Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(231) [sender=3.2.7]
Теперь вопрос - как сделать, чтобы файл ключа оказался под рукой у rsync.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 13:43, 29-11-2023 | #6


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6493
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Придумал. Гланды автогеном, как и многое в CI/CD, но работает.

Код: Выделить весь код
scp -i SSH_PRIVATE_KEY -o StrictHostKeyChecking=no SSH_PRIVATE_KEY cicd@10.1.0.142:~
ssh -i SSH_PRIVATE_KEY -o StrictHostKeyChecking=no cicd@10.1.0.142 "chmod 600 SSH_PRIVATE_KEY"
ssh -i SSH_PRIVATE_KEY -o StrictHostKeyChecking=no cicd@10.1.0.142 "rsync -Pav -e 'ssh -i SSH_PRIVATE_KEY -o StrictHostKeyChecking=no' --dry-run /docker/lk/prod/backend-data/app cicd@10.1.0.138:/docker/lk/preprod/backend-data/app"
ssh -i SSH_PRIVATE_KEY -o StrictHostKeyChecking=no cicd@10.1.0.142 "rm SSH_PRIVATE_KEY"

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 14:01, 29-11-2023 | #7


Старожил


Сообщения: 464
Благодарности: 95

Профиль | Отправить PM | Цитировать


Ключики-то можно и навсегда положить, хотя дело ваше.

Отправлено: 17:00, 03-12-2023 | #8



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Прочее - [решено] Синхронизация каталогов между двумя удалёнными серверами

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2016 - Умная синхронизация между серверами tpogih Windows Server 2016/2019/2022 0 23-08-2019 21:54
Синхронизация файлов между двумя пк Malukov.Dmitry Хочу все знать 4 30-04-2018 17:06
2008 R2 - Возможно ли P2V между двумя серверами? alef2474 Windows Server 2008/2008 R2 4 02-04-2014 10:45
Site VPN между двумя серверами ISA 2004 dim_alf ISA Server / Microsoft Forefront TMG 3 20-05-2010 01:18
не стабильного ping между двумя серверами 2003 egor_siv Microsoft Windows NT/2000/2003 3 26-08-2006 22:19




 
Переход