Как сценарировать миграцию базы данных с помощью SSH?

Я пытаюсь создать скрипт sync.sh который координирует с нашим менее чем идеальным контролем версий для нашего сайта. Этот скрипт перенесет копию живой базы данных в нашу локальную среду разработки и пару других вещей. У меня проблемы с частью миграции mysql.

Этот скрипт запускается на машине разработки. remote хост.

 # -------------- # database # ssh tunnel ssh -L 3307:remote:3306 user@remote # mysql dump mysqldump -u someuser -h remote -P 3307 -p"p4ssw0rd" db > localfile.sql # somehow close ssh tunnel ??? # populate local db with sql dump file mysql -ulocal db < localfile.sql # ----------------- # other sync stuff # ... 

Когда я просто запускаю часть mysql скрипта, я получаю этот вывод:

 Pseudo-terminal will not be allocated because stdin is not a terminal. Enter password: 

У нас есть настройка ssh ключей, и я могу ssh на пульт правильно. Однако при запуске в контексте скрипта все идет не так. Я думаю, что я всего лишь баш noob. Я предполагаю, что если я просто изменил структуру своего подхода, у меня не было бы проблем. Я просто не знаю, как это сделать …

One Solution collect form web for “Как сценарировать миграцию базы данных с помощью SSH?”

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

 $ ssh user@remote "mysqldump -u user --password=password database_name" | mysql -u local database_name 
  • Как переключить пользователя с предварительно настроенными учетными данными в SSH-терминал после входа в систему как стандартный пользователь
  • ssh не работает в CentOS 6.4?
  • Разница в списке файлов для SSH и SFTP
  • Каков тип шифрования по умолчанию для ssh-keygen?
  • Переадресация порта SSH: ошибка «Привилегированные порты могут быть перенаправлены только root»
  • Можно ли использовать один SSH-ключ для каждой учетной записи для каждой учетной записи на данном удаленном сервере?
  • Почему гидра не отключается?
  • Хранение пароля секретного ключа для автоматической установки SSHFS?
  • В чем разница между тем, чтобы nohup не добавлял «nohup.out» и явно перенаправлял его в файл?
  • Могу ли я размораживать bash или vim, когда сеанс SSH зависает от таймаута?
  • в чем разница между `>> / dev / stderr` (с пробелом) и`> & 2`?
  • Interesting Posts

    Linux Mint 14.1 не загружается из-за «безопасной загрузки»,

    ubuntu / debian: использование bluetile с GNOME2-подобной средой?

    getopt, getopts или ручной синтаксический анализ – что использовать, когда я хочу поддерживать как короткие, так и длинные варианты?

    Как правильно (безопасно) подключиться к VPN с OpenVPN в Debian?

    Программа Shell, которая выводит средние значения

    Группа и итог списка

    Отменить: xxxx.bundle неизвестный комплект версии 20

    Использование подстановочных доменов в sendmail

    Постоянный скрипт, чтобы проверить, работает ли мой веб-сервер с низким бюджетом vps?

    Ищет документацию / procfs, описывая значения и единицы измерения

    Rsyslog использовать имя хоста вместо крайней FQDN метки

    'while read line do' cause: "синтаксическая ошибка около неожиданного токена` done '"в скрипте Linux bash

    Nginx прослушивает порт, только отвечает, если установлен на порт 80

    Измените размер моих страниц памяти?

    Измените выбор FreeBSD с помощью aria2 или axel

    Linux и Unix - лучшая ОС в мире.