Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rails 1.21 KB | None | 0 0
  1. require 'rubygems'
  2. require 'net/ssh/multi'
  3.  
  4.  
  5. HOSTLIST = ['132.0.0.1','127.0.0.1']
  6. USERLIST = ['user','user']
  7. PASSWORD = ['userpegase','userpegase']
  8. TIMEOUT = 3
  9.  
  10.  
  11.  
  12.  
  13. # Gérer les erreurs de connexion... On retente de se connecter 3 fois, après ça (si échec), on lève l'exception
  14. failConnectionHandler = Proc.new do |server|
  15.   puts "Hello"
  16.   server[:connection_attempts] ||= 0
  17.  
  18.   if server[:connection_attempts] < 3
  19.     server[:connection_attempts] += 1
  20.     throw :go, :retry
  21.   else throw :go, :raise
  22.   end
  23. end
  24.  
  25.  
  26.   begin
  27.     Net::SSH::Multi.start(:on_error => failConnectionHandler) do |session|
  28.       HOSTLIST.each_with_index do |session_server,index|
  29.         session.use session_server , :user =>  USERLIST[index] , :password => PASSWORD[index]
  30.         puts session.to_s
  31.         session.exec 'pwd' do |ch, stream, data|
  32.           puts "[#{ch[session_server]} : #{stream}] - #{data}"
  33.         end
  34.       end
  35.     session.loop  
  36.     end  
  37.   rescue Timeout::Error  
  38.    puts "Timed out"  
  39.   rescue Errno::EHOSTUNREACH  
  40.    puts "Host unreachable"  
  41.   rescue Errno::ECONNREFUSED  
  42.    puts "Connection refused"  
  43.   rescue Net::SSH::AuthenticationFailed  
  44.    puts "Authentification failure "
  45.   end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement