Pular para o conteúdo

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

Para enviar comando a vários servidores de um cluster ao mesmo tempo sem usar troca de chaves, existe um programa chamado cssh...
Djames Suhanko suhanko
Hits: 9.003 Categoria: Python Subcategoria: Rede
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

Para enviar comando a vários servidores de um cluster ao mesmo tempo sem usar troca de chaves, existe um programa chamado cssh...
Download multissh.py Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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()
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Sockets em Python

Peer-to-peer nós para processamento em multipontos

Simple wireless scanner

Aplicação gráfica para Wake-on-LAN com Python 3 + GUI Tk/Tcl

Ligando máquina pela rede usando Python

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.