我正在尝试编写一个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
没有下一步程序。
有人会帮忙吗?感谢...
答案 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