从所有服务器上的who命令中提取信息

时间:2015-12-28 14:40:42

标签: ruby bash ssh server

我正在创建一个从who命令中提取信息的程序,另请参阅此question以查看who命令的格式。

现在我要做的是ssh到不同的服务器并运行who命令。问题是我不知道如何在Ruby中ssh。我知道require 'net/ssh/gateway'有人会介绍我如何在Ruby中ssh以及在多个服务器上执行who命令(如链接的问题)吗?

例如:

def user
  cmd = `who`.gsub(/[ \t].*/,"")
  puts cmd
  #<= Do some fancy stuff that will ssh to the servers and run cmd
end

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

我发现做这样的事情:

 26 print "Enter password: "
 27 system "stty -echo" #<= Removes echo from typing, you won't see your keystrokes
 28 @password = gets.chomp
 29 system "stty echo"
 30 
 31 def logged_in
 32   cmd = `who`.gsub(/[ \t].*/,"")
 33   check = Net::SSH.start(@host, @username, :password => @password)
 34   check.exec!(cmd)
 35 end
 36 
 37 @host = %w(servers).each do
 38   logged_in
 39 end
 40
 41 @username = Etc.getlogin

将做我想做的事。