为什么在尝试远程执行命令时出现错误?
Why I get an error when I try to execute a command remotely?
我对通过 SSH 远程执行命令有疑问。我在下面尝试。
ssh xx.xx.xx.xx "psql -U qradar -c "select count(id) from offense_view where to_timestamp(start_time/1000) > NOW() - interval '180 minutes'"
它给出如下错误:
Pseudo-terminal will not be allocated because stdin is not a terminal.
ERROR: syntax error at or near "180"
LINE 1: ... to_timestamp(start_time/1000) > NOW() - interval 180 minute...
问题是您在命令中使用双引号分隔 ssh
的参数以及 psql
的参数。这会导致您的字符串被错误地解析。您还缺少 psql
命令的结束双引号。
嵌套引号在 shell 中很棘手,使用 ssh
时更难。如果你使用 here-doc 会更容易。
ssh xx.xx.xx.xx <<EOF
psql -U qradar -c "select count(id) from offense_view where to_timestamp(start_time/1000) > NOW() - interval '180 minutes'"
EOF
我对通过 SSH 远程执行命令有疑问。我在下面尝试。
ssh xx.xx.xx.xx "psql -U qradar -c "select count(id) from offense_view where to_timestamp(start_time/1000) > NOW() - interval '180 minutes'"
它给出如下错误:
Pseudo-terminal will not be allocated because stdin is not a terminal. ERROR: syntax error at or near "180" LINE 1: ... to_timestamp(start_time/1000) > NOW() - interval 180 minute...
问题是您在命令中使用双引号分隔 ssh
的参数以及 psql
的参数。这会导致您的字符串被错误地解析。您还缺少 psql
命令的结束双引号。
嵌套引号在 shell 中很棘手,使用 ssh
时更难。如果你使用 here-doc 会更容易。
ssh xx.xx.xx.xx <<EOF
psql -U qradar -c "select count(id) from offense_view where to_timestamp(start_time/1000) > NOW() - interval '180 minutes'"
EOF