Bash 脚本,通过 ssh 的远程 psql 命令,管道 sql 文件,密码失败
Bash script, remote psql command over ssh, pipe sql file, password fails
我有一个 bash 脚本。我想 运行 一个带有 ssh 的 postgres 命令,它通过管道传输一个本地文件。问题是 psql 命令提示输入密码,而我的 sql 文件通过管道传输到其中。如何编写在输入密码后通过管道传输的命令?
ssh server "psql -W -h db_host -p 5432 -U db_user -d postgres" < staging.sql
我建议将其分解为多个步骤:
# Transfer the sql file to the server
scp staging.sql server
# Excute the queries in that file with psql over ssh
# Notes:
# - ssh -t enforces terminal allocation. You may try it without this option and see if it still works.
# - psql -f FILENAME reads commands from file
#
ssh -t server \
'psql -W -h db_host -U db_user -d postgres -f staging.sql; rm staging.sql'
我有一个 bash 脚本。我想 运行 一个带有 ssh 的 postgres 命令,它通过管道传输一个本地文件。问题是 psql 命令提示输入密码,而我的 sql 文件通过管道传输到其中。如何编写在输入密码后通过管道传输的命令?
ssh server "psql -W -h db_host -p 5432 -U db_user -d postgres" < staging.sql
我建议将其分解为多个步骤:
# Transfer the sql file to the server
scp staging.sql server
# Excute the queries in that file with psql over ssh
# Notes:
# - ssh -t enforces terminal allocation. You may try it without this option and see if it still works.
# - psql -f FILENAME reads commands from file
#
ssh -t server \
'psql -W -h db_host -U db_user -d postgres -f staging.sql; rm staging.sql'