[Python] Python e SSH

Manlio Perillo manlio.perillo a gmail.com
Gio 11 Ago 2016 17:19:05 CEST


2016-08-11 17:04 GMT+02:00 Manlio Perillo <manlio.perillo a gmail.com>:
> 2016-08-11 16:47 GMT+02:00 Zanon Samuele <webs86 a gmail.com>:
>>
>> Ciao a tutti,
>> sto realizzando un pannello per la gestione di alcuni processi interni
>> all'ufficio utilizzando django e celery per la gestione della coda dei
>> processi.
>> Ora il mio problema è collegarmi ai server via SSH, eseguire una sequenza
>> di comandi (alcuni anche come root, quindi ho la necessità di poter passare
>> la password di root al comando su), catturare l'output di ciascun comando e
>> salvare l'output su db.
> [...]
>> Potete darmi una mano a modificare quella classe per poter ottenere il
>> risultato che mi aspetto? Oppure dirmi qualche altra libreria poter
>> utilizzare?
>>
>
> Come detto, l'organizzazione del codice è sbagliata.
> Innanzitutto non capisco cosa faccia il codice.
> Vuoi inviare un comando e ricevere la risposta?  In questo caso dovresti
> utilizzare una coda (threading.Queue).
>

Se intendi gestire un solo comando alla volta, probabilmente non hai
bisogno di complicarti la vita con i thread.
Non eseguire process in un thread, ed invece aggiungi un metodo send_cmd che:

1) Alloca una shell se non è già stato fatto
2) Invia il comando alla shell
3) Legge la risposta
4) Restituisce la risposta

Inoltre ti consiglio anche di evidenziare, nel codice, quali sono i
metodi/funzioni pubblici e quali quelli privati.
Nel tuo caso il metodo open_shell è privato, quindi rinominalo _open_shell.


Ciao  Manlio


Maggiori informazioni sulla lista Python