Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Python - Script per inviare lo stesso comando a diversi dispositivi
Forum - Python - Script per inviare lo stesso comando a diversi dispositivi

Avatar
macco_cl (Normal User)
Rookie


Messaggi: 34
Iscritto: 27/02/2007

Segnala al moderatore
Postato alle 11:32
Giovedì, 07/07/2016
Buongiorno a tutti!

Descrivo il mio problema:

Attualmente ho un portatile che fa da server con sopra un DB, all'interno del DB vengono salvati dei dati che sono raccolti da 5 raspberry.

Qualche volta ho la necessità di fare un reboot di tutti e 5 i dispositivi, solo che ogni volta che devo fare un reboot devo scrivere gli stessi comandi per tutti e 5 i dispositivi, vorrei creare uno script che mi permetta di connettermi a tutti e 5 i dispositivi contemporaneamente e che mandi a tutti lo stesso comando di reboot è possibile?

Attualmente controllo i 5 raspberry tramite ssh con il portatile (server), il portatile ha come OS windows.

Qualsiasi suggerimento è più che gradito.

Grazie in anticipo

PM Quote
Avatar
GN (Member)
Guru


Messaggi: 770
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 11:44
Giovedì, 07/07/2016
Se per connetterti via SSH usi PuTTY (visto che sei su Windows) puoi usare il comando plink (http://linux.die.net/man/1/plink), mettendone uno per ogni Raspberry in un file batch, qualcosa del genere:
Codice sorgente - presumibilmente Plain Text

  1. plink user1@ip_raspberry1 reboot
  2. plink user2@ip_raspberry2 reboot
  3. plink user3@ip_raspberry3 reboot
  4. plink user4@ip_raspberry4 reboot
  5. plink user5@ip_raspberry5 reboot


Naturalmente sostituendo i nomi utenti e gli indirizzi, ed è necessario che il comando plink sia nel PATH.
Se devi lanciarlo da uno script Python puoi usare subprocess per lanciare il batch (http://stackoverflow.com/questions/5469301/run-a-bat-file- ....


PM Quote
Avatar
macco_cl (Normal User)
Rookie


Messaggi: 34
Iscritto: 27/02/2007

Segnala al moderatore
Postato alle 12:37
Giovedì, 07/07/2016
ti ringrazio per l'aiuto, il prima possibile provo la soluzione da te proposta.

Ho anche visto che esiste una libreria per python chiamata Paramiko che permette di collegarsi tramite ssh a diversi dispositivi.

La conosci? se si sai se potrebbe fare al caso mio? perché la stavo guardando e mi sembrava potesse essere una buona soluzione.

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1452
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 2:45
Domenica, 10/07/2016
Paramiko fa al caso tuo.

Fai attenzione allo script: conterrà la password di root di 5 dispositivi collegati alla rete!!!

PM Quote
Avatar
macco_cl (Normal User)
Rookie


Messaggi: 34
Iscritto: 27/02/2007

Segnala al moderatore
Postato alle 13:37
Mercoledì, 13/07/2016
Ti ringrazio, alla fine ho risolto con paramiko...è veramente fenomenale

PM Quote