[Python] Python e SSH

Manlio Perillo manlio.perillo a gmail.com
Gio 11 Ago 2016 17:04:55 CEST


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.
> Ho provato ad utilizzare paramiko per collegarmi al server sfruttando la
> classe che trovate qui
> <https://gist.github.com/webs86/21b873140432cb973890f52ce01b53fc> ma ho i
> seguenti problemi:
>

Il programma mi sembra sbagliato.
Usi un thread, ma l'accesso alle variabili condivise non è sincronizzato.


>    - Nel dizionario dove colleziono tutti i comandi non mi viene inserito
>    il comando che specifico in send_shell
>
>
Quale dizionario? cmd nel metodo process?
Come dovrebbe funzionare?

>
>    - Nel database quando salvo i comandi ho come valore di output solo la
>    riga di input della console ssh, non tutto l'output che mi aspetto dei vari
>    comandi
>
>
Quale database? SSHBaseCommand.commands

>
>    - Alle volte sembra perdere i comandi e mi da un output differente ad
>    ogni chiamata
>
> 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).



Ciao  Manlio
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20160811/3d7fec8a/attachment.html>


Maggiori informazioni sulla lista Python