[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