В bash-скрипте: SSH-подключения к удаленному хосту постоянно оказываются неудачными и время ожидания истекло - PullRequest
0 голосов
/ 03 июля 2019

Я использую Rundeck для запуска определенного скрипта bash, который клонирует данные сайта из одной среды в другую.Сам сценарий полагается на одну основную функцию для выполнения большинства каждого из этапов задачи.

В настоящее время скрипт переносит неполные данные и оставляет пользовательский интерфейс неработоспособным.Во время процесса дампа и восстановления SQL не устанавливается соединение SSH, необходимое для завершения процесса с одного хоста на другой:

ssh: подключение к порту хоста ctl001.remote.server.com8022: Тайм-аут соединения

Я попробовал все основы.Наша инфраструктура построена с использованием экземпляров AWS и использует их, поэтому я убедился, что соответствующие IP-адреса были внесены в белый список в соответствующих группах безопасности (брандмауэры серверного программного обеспечения не используются).Я убедился, что синтаксис правильный, а ошибочные опечатки были устранены.

На этом этапе я хотел бы использовать scp или rsync для передачи данных, вместо того, чтобы продолжать пытаться заставить его работать с открытым SSH-соединением.После этого мне нужно убедиться, что дамп SQL восстанавливается в целевой БД.Если это не лучший путь вперед, пожалуйста, дайте мне знать.Я полностью открыт для любых предложений и идей.

Часть функции «изменения», используемая сценарием для извлечения и передачи информации с одного хоста на другой, как указано выше, такова, какследует (я добавил первые два блока для контекста):


  if [[ "${SOURCE_ENVIRONMENT}" == "${TARGET_ENVIRONMENT}" ]]
  then
    # Copy database directly
    run_remote_command "ctl001.${TARGET_ENVIRONMENT}.server.com" \
    "mysqldump -hdbm${SOURCE_CLUSTER_NUM}01 envname_${SOURCE_CLIENT} | \
       mysql -hdbm${TARGET_CLUSTER_NUM}01 envname_${TARGET_CLIENT}"

    run_remote_command "ctl001.${TARGET_ENVIRONMENT}.server.com" \
     "mysqldump -hdbm${SOURCE_CLUSTER_NUM}01 api_${SOURCE_CLIENT} | \
        mysql -hdbm${TARGET_CLUSTER_NUM}01 api_${TARGET_CLIENT}"
  else
# Copy database over SSH
    run_remote_command "ctl001.${TARGET_ENVIRONMENT}.server.com" \
    "ssh ctl001.${SOURCE_ENVIRONMENT}.server.com -- \
      'mysqldump -hdbm${SOURCE_CLUSTER_NUM}01 envname_${SOURCE_CLIENT}' | \
      mysql -hdbm${TARGET_CLUSTER_NUM}01 envname_${TARGET_CLIENT}"

    run_remote_command "ctl001.${TARGET_ENVIRONMENT}.server.com" \
    "ssh ctl001.${SOURCE_ENVIRONMENT}.server.com -- \
      'mysqldump -hdbm${SOURCE_CLUSTER_NUM}01 api_${SOURCE_CLIENT}' | \
      mysql -hdbm${TARGET_CLUSTER_NUM}01 api_${TARGET_CLIENT}"
  fi

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...