2017-04-02 109 views
0

我是新来的红宝石,我试图寻找很多,但我无法弄清楚这一点!红宝石 - 获取命令输出,这是通过SSH执行

我需要执行这个命令: 我试过使用Open3.popen,back-ticks但输出没有被返回,它只返回ssh命令,但是我需要输出hive查询。

ssh -C -i key_rsa -l login_name server_name "/usr/bin/hive -i .hiverc -e \" some_query \"" > somefile.csv 

我怎样才能得到输出&错误,如果任何的蜂房查询和SSH?

在此先感谢,请让我通过确保尽早

+0

您是否故意使用'> somefile.csv'将文件重定向到文件? – SergGr

+0

是的,我故意这样做 –

+0

只是为了仔细检查,在那个命令运行之后,你期望ouptut在哪里?在您重定向到的文件中还是在您开始的过程的标准输出中? – SergGr

回答

0

简化知道您的查询输出到标准输出首先登录到目标服务器,并手动运行查询。接下来在ssh命令后面的查询周围使用单引号。最后,在确定各个部分正在工作时添加重定向:

ssh -C -i key_rsa -l login_name server_name '/usr/bin/hive -i .hiverc -e " some_query "' 
+0

一切正在一件件工作,但仍然没有得到输出 –

+0

结果是什么:'ssh -C -i key_rsa -l login_name server_name'ls'' – garyboland

+0

这是行得通的,我也能够得到以前的命令工作, –