部署 求教一个 ruby telnet 连接 apache james mail server 的问题

zhex · 2012年03月27日 · 最后由 zhex 回复于 2012年03月27日 · 4071 次阅读

apache james 只能通过 telnet 来创建,修改用户,所以我写了一个 ruby 的脚本去连接 telnet。

现在的问题是 telnet 可以连上,但是不知道为什么发送的 command 都不能执行?

脚本代码如下:

require 'net/telnet'


tn = Net::Telnet.new({
  "Host" => "10.32.94.60", 
  "Port" => 4555, 
  "Timeout" => false,
  "Output_log" => 'out.log'
})

options = {
  "Name"            => "root",
  "Password"        => "root",
  "LoginPrompt"     => /Login id:/i,
  "PasswordPrompt"  => /Password:/i
}
tn.login(options) { |c| print c }

tn.cmd("listusers") { |c| print c }
tn.close

可能是命令提示问题,你改变一下 cmd 的第二默认参数试试

@lyfi2003 我在 cmd 函数后面加上了 match 属性,不过还是没有成功

直接用操作系统自带的 telnet 去试试,看看是什么提示,存在什么问题 #2 楼 @zhex

try tn.cmd("listusers\n") ?

@lyfi2003 因为是登陆以后第一个执行的命令,所以最后看到的语句应该就是“Welcome root. HELP for a list of commands”这句欢迎语句。

@quakewang 根据文档提示,cmd 函数和 puts 一样最后自动会加上回车,我想应该不是这个问题

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