2015-12-14 2 views
0

Я пытаюсь написать Баш скрипт, который позволил бы мне:PSQL pg_dump с су - Postgres

1) Вход в SSH суперпользователя

2) Если вход затем войти в Postgres

3) Если вход в Postgres затем pg_dumb моей дб к моей локальной БД

Мой код выглядит:

ssh [email protected] 

user = `root` 

if [ "$user" == "root" ]; then 
    su - postgres 
fi 

user = `postgres` 

if [ "$user" == "postgres" ]; then 
    pg_dump my_user_name my_db | psql my_db2 
fi 

Перед запуском моего сценария я создал локально нового пользователя my_db с --owner my_db2, поэтому не должно быть проблем с копированием дампа в локальный db.

Но проблема в том, что когда я запускаю этот скрипт, все, что я получаю, это просто вход в ssh root и больше ничего не происходит. Только получение/корень

Нет следующей процедуры.

Кому-нибудь поможет? Спасибо ...

ответ

1

Вы можете напрямую запустить команду в качестве пользователя postgres из командной строки root. См. Ниже:

su - postgres -c 'pg_dump source-db | PSQL целевой БД»

0

Попробуйте это:

user="root" 

if [ "$user" == "root" ]; then 
su - postgres 
fi