2016-04-29 95 views
1

我需要远离许多PostgreSQL的奴隶PSQL定时从庆典

比较性能,我找不到写东西像一个好办法:

echo "\timing on  select now() ; " | ssh [email protected] "psql foo_db" 

一些“-e”尝试回声有些“\”,

我只是得到“时间是”和一些额外的参数“XXXX”忽略

回答

2

在我的系统,ssh不通过标准输入可言,所以我把牛逼他整个管道进入论证。我结束了是这样的:

ssh [email protected] "echo \"\timing on \\\\\ select now();\" | psql foo_db" 

\"里面的字符串允许在必要时我使用'strings'在SQL本身。尴尬\\\\\序列归结如下:

  • 外双引号字符串(传递给ssh)减小了每个\\\,给人\\\,用于echo "timing on \\\ select now();"
  • 内双引号字符串(传递给远程echo)再次降低,以\\,给timing on \\ select now();
  • 这使我们能够混合psql元命令和SQL没有多行,如手册中所述:

特殊序列\\(两个反斜杠)标记参数的结尾并继续解析SQL命令(如果有的话)。这样,SQL和psql命令可以自由地混合在一条线上。

+0

真好!有用 :-) – Overnuts