【发布时间】:2016-09-30 05:00:19
【问题描述】:
我正在我的应用服务器上运行一个 shell 脚本,该脚本将在另一台安装了 Postgres 数据库的机器上运行。它将执行查询并返回几个 ID 并存储到变量中。请在我的 shell 脚本下面找到。
ssh root@<Remote_HOST> 'bash -s'<< EOF
projectid=`/usr/pgsql-9.4/bin/psql $DB_NAME -U $DB_USER -h $DB_HOST -t -c "select projectid from projects where project_Name='$projectName';"`
scenarioid=`/usr/pgsql-9.4/bin/psql $DB_NAME -U $DB_USER -h $DB_HOST -t -c "select scenarioid from scenarios where scenario='$scenario' and projectid='$projectid';"`
EOF
echo $projectid
如果我执行 Shell,我会收到以下错误: /root/test/data.sh:第 62 行:/usr/pgsql-9.4/bin/psql:没有这样的文件或目录 /root/test/data.sh:第 62 行:/usr/pgsql-9.4/bin/psql:没有这样的文件或目录
但是在安装了数据库的机器上,如果我执行相同的查询,我会得到正确的结果。所以我不确定出了什么问题,查询很好并且目录存在。即使在 SSH 到远程主机之后,如果我执行 ls 或 pwd,我也会得到正确的输出。我已经导出了数据库密码,所以没有密码的数据库登录已经可以正常工作了。
有人能告诉我我在这里缺少什么吗?
【问题讨论】:
-
谢谢。我想到了参考链接中提到的一些细节。我正在尝试提到的一些事情。
标签: shell