Tag: pty

ssh远程服务器登录脚本

目前我正在尝试使用“pty”和“expect”ruby库编写一个ruby脚本来登录SSH远程服务器。 并尝试使用该脚本在远程系统内创建新的rails应用程序。 任何人都可以告诉我。 如何使用ruby库登录到远程服务器?

Ruby – Expect和Pty的问题

我正在尝试编写一个Ruby脚本,它将ssh到服务器,运行给定的命令,并从中获取输出。 这是我到目前为止所做的,主要是改编自Ruby编程的书: require ‘pty’ require ‘expect’ $expect_verbose = true PTY.spawn(“ssh root@xy”) do |reader, writer, pid| reader.expect(/root@xy’s password:.*/) writer.puts(“password”) reader.expect(/.*/) writer.puts(“ls -l”) reader.expect(/.*/) answer = reader.gets puts “Answer = #{answer}” end 不幸的是,我要回来的是这个: Answer = .y’s password: 知道我做错了什么以及如何缓解这个问题?

Ruby on Linux PTY在没有EOF的情况下消失,引发了Errno :: EIO

我正在编写一些带有文件的代码,将该文件传递给多个二进制文件之一进行处理,并监视转换过程中的错误。 我已经在OSX上编写并测试了以下例程,但linux因为我不清楚的原因而失败。 #run the command, capture the output so it doesn’t display PTY.spawn(command) {|r,w,pid| until r.eof? do ##mark puts r.readline end } 运行的命令变化很大,##标记处的代码已简化为本地回显以尝试调试问题。 该命令执行,脚本在终端中打印预期的输出,然后抛出exception。 它在Debian系统上产生的错误是: Errno::EIO (Input/output error – /dev/pts/0): 我可以提出的所有命令字符串都会产生错误,当我运行没有本地echo块的代码时,它运行得很好: PTY.spawn(command) {|r,w,pid|} 在任何一种情况下,命令本身执行正常,但似乎debian linux没有发送eof up the pty。 PTY文档页面和ruby-doc上的IO似乎没有任何帮助。 有什么建议? 谢谢。 -vox-