当前位置:  开发笔记 > 后端 > 正文

Ruby - Expect和Pty的问题

如何解决《Ruby-Expect和Pty的问题》经验,为你挑选了1个好方法。

我正在尝试编写一个Ruby脚本,它将ssh到服务器,运行给定的命令,并从中获取输出.这是我到目前为止所做的,主要是改编自Ruby编程书:

require 'pty'
require 'expect'

$expect_verbose = true
PTY.spawn("ssh root@x.y") do |reader, writer, pid|
  reader.expect(/root@x.y's password:.*/)
  writer.puts("password")
  reader.expect(/.*/)
  writer.puts("ls -l")
  reader.expect(/.*/)
  answer = reader.gets
  puts "Answer = #{answer}"
end

不幸的是,我要回来的是这样的:

Answer = .y's password:

知道我做错了什么以及如何缓解这个问题?



1> Ryan Bigg..:

为此,我建议使用net-ssh gem sudo gem install net-ssh:http://net-ssh.rubyforge.org/ssh/v2/api/index.html

代码有点像这样:

require 'rubygems'
require 'net/ssh'

Net::SSH.start('your-server', 'username', :password => "password") do |ssh|
  puts ssh.exec!("ls -la")
end

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有