我正在编写一个 shell 脚本,它将从一台服务器执行 pg_dump,然后它将转储恢复到另一台服务器上的数据库中。
要访问第一台服务器上的 Postgres 数据库,我使用 export PGPASSWORD 以避免出现密码提示。
当我在第二台服务器的 Postgres 数据库上执行还原时,系统会提示我输入用户密码。我尝试重新声明导出 PGPASSWORD(因为此数据库的密码不同),但这不起作用。我怀疑这与我必须加倍 SSH 跃点才能访问第二个数据库的事实有关:
export PGPASSWORD=******
perform pg_dump
...
export PGPASSWORD=********
cat out.sql | ssh -i .ssh/server1.pem root@dev.hostname.com "ssh -i .ssh/server2 \
0.0.0.0 psql -U postgres -h localhost -p 5432 DBNAME"
上述结果:
Password for user postgres:
psql: FATAL: password authentication failed for user "postgres"
有没有人有什么建议?谢谢!