我需要远程比较许多postgresql从属的性能
我找不到一个好的方法来写下这样的东西:
echo "\timing on select now() ; " | ssh me@server "psql foo_db"
尝试使用'-e'作为回声,有些'\',
我只是'正在开启'并且一些额外的参数'xxxx'被忽略
答案 0 :(得分:3)
在我的系统上,ssh
根本没有通过标准输入,因此我将整个管道放入参数中。我最终得到的是:
ssh me@server "echo \"\timing on \\\\\ select now();\" | psql foo_db"
字符串中的\"
允许我在必要时在SQL本身中使用'strings'
。笨拙的\\\\\
序列归结如下:
ssh
)将每个\\
减少为\
,为\\\
提供echo "timing on \\\ select now();"
echo
)再次缩减为\\
,提供timing on \\ select now();
psql
元命令和没有多行的SQL,如手册中所述:特殊序列\\(两个反斜杠)标记参数的结尾并继续解析SQL命令(如果有的话)。这样,SQL和psql命令可以在一行中自由混合。
答案 1 :(得分:1)
ssh me@server psql foo_db -Atq <<EOT
\timing on
select now();
EOT