ОТЛОЖЕНО
Скрипт должен принимать
- Адрес сервера с которого скачиваются данные
- Логин
- Пароль
- Вероятно путь к SSH ключу
Данные должны сохраняться в рабочем каталоге проекта в yaml файле, чтобы не запрашивать их при повторном запуске скрипта.
yaml с данными должен быть исключен из GIT чтобы случайно его не опубликовать. Как вариант файл можно сохранять в домашнем каталоге пользователя.
Команды для формирования дампа на сервере
$ mkdir -p ~/DUMPS
$ rm -rf ~/.pgpass
$ echo localhost:5432:rails_app_db:rails:${PASSWORD} > ~/.pgpass
$ chmod 0600 ~/.pgpass
$ cd ~/DUMPS
$ pg_dump --format=custom --host=localhost --username=rails --file=open-cook.ru.rails_app_db.${DUMP_TIME_STAMP}.pq.sql rails_app_db
$ rm -rf ~/.pgpass
$ mkdir -p ~/DUMPS
$scp -o 'ForwardAgent=yes' -i ~/.ssh/mac_air_rsa rails@100.100.100.100:~/DUMPS/open-cook.ru.rails_app_db.${DUMP_TIME_STAMP}.pq.sql ~/DUMPS/open-cook.ru.rails_app_db.${DUMP_TIME_STAMP}.pq.sql
Загрузить в PG на локалке
pg_restore -h localhost -d rails_app_db -U rails ~/DUMPS/open-cook.ru.rails_app_db.${DUMP_TIME_STAMP}.pq.sql
Скопировать файлы через RSync
$ mkdir -p ../public
$ rsync -e 'ssh -i ~/.ssh/mac_air_rsa' -chavzPr rails@100.100.100.100:/home/rails/www/open-cook.ru/production/SHARED/public/uploads ./public