Ruby ssh 执行一个 ruby 文件没反应

kitt · 2013年08月22日 · 最后由 kitt 回复于 2013年08月23日 · 4253 次阅读

在程序中,给服务器发送 ssh.exec! 命令执行 shell 命令, 引入 ssh 的 gem 包了

Net::SSH.start('192.168.1.141','pengweimin', :password => 'pengweimin') do |ssh|
  ssh.exec! "ruby /home/pengweimin/gx/blade/public/reports/1104/2013/06/le.rb"
end

远程执行其他的 shell 命令都可以,但是发送执行 ruby 文件的命令就是没反应,也不报错,在服务器本机执行同样的 shell 命令就可以,

ruby 加上绝对路径试一下

require 'net/ssh'
Net::SSH.start('192.168.1.141','pengweimin', :password => 'pengweimin') do |ssh|
  p ssh.exec! "ruby /home/pengweimin/gx/blade/public/reports/1104/2013/06/le.rb"
  p ssh.exec!('echo $?')       #<== 追加这行 看看结果 是不是找不到Ruby?
end

谢谢大家了,是路径问题,原来他遍历的不是文件所在路径,而是 ruby 的 irb 路径,

需要 登录 后方可回复, 如果你还没有账号请 注册新账号