2016-08-11 16:47 GMT+02:00 Zanon Samuele <web...@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
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python