PSQL PG_DUMP与su - postgres

时间:2015-12-14 09:13:41

标签: bash postgresql ssh

我正在尝试编写一个bash脚本,允许我:

1)登录ssh root帐户

2)如果已记录,则以postgres

登录

3)如果记录为postgres,则将我的db的pg_dumb记录到我的本地db

我的代码看起来:

ssh root@myhost

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

在运行我的脚本之前,我已使用--owner my_db2 在本地创建了一个新用户 my_db ,因此将转储复制到本地时不会出现问题分贝。

但问题是,当我运行这个脚本时,我得到的只是登录到ssh root,没有更多的事情发生。刚刚获得/ root

没有下一步程序。

有人会帮忙吗?感谢...

2 个答案:

答案 0 :(得分:2)

您可以从root提示符直接将命令作为postgres用户启动。见下文:

su - postgres -c' pg_dump source-db | psql target-db'

答案 1 :(得分:0)

试试这个:

user="root"

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