Envio de comandos por ssh sem troca de chaves a múltiplos servidores

Publicado por Djames Suhanko 06/06/2009

[ Hits: 8.416 ]

Homepage: http://phantomclone.com

Download multissh.py




Para enviar comando a vários servidores de um cluster ao mesmo tempo sem usar troca de chaves, existe um programa chamado cssh...

  



Esconder código-fonte

#!/usr/bin/env python
#By: Djames Suhanko - Catho online

#lista de servidores

sincroniza =["server1.domain","server2.domain", "server3.domain"]

import pexpect
import sys
from threading import Thread

#usuario e senha podem ser colocados em um arquivo.ini ou estaticamente nesse arquivo

#Testa a lista de parâmetros

try:
    if sys.argv[3]:
        pass
except:
    print  "Uso: " + "script" + " <comando entre aspas> <usuario> <senha>"
    sys.exit()

#essa função inicia o envio dos comandos passados como argumentos.
def executor(comando,usuario,senha,servidor):
    a = 'ssh ' + usuario + '@' + servidor
    foo = pexpect.spawn(a)
    foo.expect('.*ssword:')
    foo.sendline(senha)
    foo.sendline('su')
    foo.expect('.*sword:')
    foo.sendline('senha_secreta')
    foo.sendline(comando + '&& exit')
    print "comando e saida para: " + servidor + "..........[OK]"
    foo.sendline('exit')
    foo.expect('.*osed.')
    foo.interact()

#cria uma lista...
tasks = []

#loop com thread da funcao executor
for i in sincroniza:
    t = Thread(target=executor,args=(sys.argv[1],sys.argv[2],sys.argv[3],i))
    t.start()
    tasks.append(t)

#aguarda a finalização de todas as tarefas.

for t in tasks:
    t.join()

Scripts recomendados

Script para Scanner servidor e encontrar portas abertas

Scanner de rede em Python

Scanner Wifi in Python [very simple and helpful]

Renomeador de rede em Python

Trocar IP em Python3


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts