<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2016-08-11 16:47 GMT+02:00 Zanon Samuele <span dir="ltr"><<a href="mailto:webs86@gmail.com" target="_blank">webs86@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Ciao a tutti,<div>sto realizzando un pannello per la gestione di alcuni processi interni all'ufficio utilizzando django e celery per la gestione della coda dei processi.</div><div>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.</div><div>Ho provato ad utilizzare paramiko per collegarmi al server sfruttando la classe che trovate <a href="https://gist.github.com/webs86/21b873140432cb973890f52ce01b53fc" target="_blank">qui</a> ma ho i seguenti problemi:</div></div></blockquote><div><br></div><div>Il programma mi sembra sbagliato.</div><div>Usi un thread, ma l'accesso alle variabili condivise non è sincronizzato.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><ul><li>Nel dizionario dove colleziono tutti i comandi non mi viene inserito il comando che specifico in send_shell</li></ul></div></div></blockquote><div><br></div><div>Quale dizionario? cmd nel metodo process?</div><div>Come dovrebbe funzionare? </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><ul><li>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</li></ul></div></div></blockquote><div><br></div><div>Quale database? SSHBaseCommand.commands</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><ul><li>Alle volte sembra perdere i comandi e mi da un output differente ad ogni chiamata</li></ul><div>Potete darmi una mano a modificare quella classe per poter ottenere il risultato che mi aspetto? Oppure dirmi qualche altra libreria poter utilizzare?</div><div><br></div></div></div></blockquote><div><br></div><div>Come detto, l'organizzazione del codice è sbagliata.</div><div>Innanzitutto non capisco cosa faccia il codice.</div><div>Vuoi inviare un comando e ricevere la risposta?  In questo caso dovresti utilizzare una coda (threading.Queue).</div><div> </div><div></div></div><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Ciao  Manlio</div></div>