【问题标题】:ruby - get command output, which is executing via sshruby - 获取通过 ssh 执行的命令输出
【发布时间】:2017-04-02 01:19:15
【问题描述】:

我是 ruby​​ 新手,我尝试了很多搜索,但我无法弄清楚!

我需要执行这个命令: 我尝试使用 Open3.popen,反引号但没有返回输出,它只返回 ssh 命令但我需要 hive 查询的输出。

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

如何获取 hive 查询和 ssh 的输出和错误?

提前谢谢,请尽早告诉我

【问题讨论】:

  • 您是否故意将您的输出重定向到带有> somefile.csv 的文件?
  • 是的,我是故意这样做的
  • 只是为了仔细检查,在运行该命令后,您希望输出在哪里?在您重定向到的文件中还是在您启动的进程的标准输出中?

标签: ruby ssh terminal


【解决方案1】:

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

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

【讨论】:

  • 一切都在一块一块地工作,但仍然没有得到输出
  • 结果是什么:ssh -C -i key_rsa -l login_name server_name 'ls'
  • 这行得通,我也可以让前面的命令正常工作,
猜你喜欢
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 2015-09-05
  • 1970-01-01
  • 2011-09-19
  • 1970-01-01
  • 2011-02-02
相关资源
最近更新 更多