Parallell SSH i Python

stemmer
3

Jeg lurer på hva er den beste måten å håndtere parallelle SSH forbindelser i python. Jeg trenger å åpne flere SSH forbindelser å holde i bakgrunnen og å mate kommandoer i interaktiv eller tidsbestemt batch måte. Er dette mulig å gjøre det med paramiko bibliotekene? Det ville være fint å ikke gyte en annen SSH prosess for hver tilkobling.

Takk.

Publisert på 26/07/2009 klokken 21:19
kilden bruker
På andre språk...                            


6 svar

stemmer
1

Du kan ganske enkelt bruke subprocess.Popen for dette formålet, uten problemer.

Men kan det være lurt å bare installere cronjobs på eksterne maskiner. :-)

Svarte 26/07/2009 kl. 21:27
kilden bruker

stemmer
1

Lese paramiko API docs, ser det ut som det er mulig å åpne en ssh tilkobling, og Multiplex så mange ssh tunneler på toppen av det som er ønsket. Vanlige ssh-klienter (OpenSSH) ofte gjør ting som dette automatisk bak scenen hvis det allerede finnes en sammenheng åpen.

Svarte 26/07/2009 kl. 21:30
kilden bruker

stemmer
3

Det kan være verdt å sjekke ut hvilke alternativer som er tilgjengelige i Twisted. For eksempel Twisted.Conch Rapporter:

http://twistedmatrix.com/users/z3p/files/conch-talk.html

I motsetning til OpenSSH, gjør Conch serveren ikke gaffel en prosess for hver innkommende forbindelse. I stedet bruker den Twisted reaktoren å multiplekse tilkoblingene.

Svarte 26/07/2009 kl. 23:14
kilden bruker

stemmer
3

Ja, du kan gjøre dette med paramiko.

Hvis du kobler til en server, kan du kjøre flere kanaler gjennom en enkelt tilkobling. Hvis du kobler til flere servere, kan du starte flere tilkoblinger i egne tråder. Du trenger ikke å håndtere flere prosesser, selv om du kunne erstatte den multi modul for threading modul og har samme virkning.

Jeg har ikke sett på vridd konkylie på en stund, men det ser ut som det blir oppdateringer på nytt, noe som er fint. Jeg kan ikke gi deg en god funksjon sammenligning mellom de to, men jeg synes paramiko er lettere å komme i gang. Det tar litt mer innsats for å komme inn vridd, men det kan være vel verdt det hvis du gjør andre nettverk programmering.

Svarte 27/07/2009 kl. 12:45
kilden bruker

stemmer
-1

Dette er kanskje ikke relevant for spørsmålet ditt. Men det finnes verktøy som pssh, clusterssh etc. som kan parallelt gyte tilkoblinger. Du kan par forvente med pssh å kontrollere dem også.

Svarte 04/10/2009 kl. 12:34
kilden bruker

stemmer
1

Jeg har prøvd clusterssh, og jeg liker ikke den som under modell. For forvirrende i felles sak når alt fungerer.

Jeg har prøvd pssh, og den har noen problemer med sitat rømmer og passord spørre.

Den beste jeg har brukt er dsh :

 Beskrivelse: danseren skall, eller distribueres skall
 Utfører bestemt kommando på en gruppe av maskiner ved hjelp av eksterne shell
 metoder som RSH eller ssh.
 .
 DSH kan parallelise jobbsending ved hjelp av flere algoritmer, som å bruke
 fan-out-metoden eller åpning så mye forbindelser som mulig, eller
 ved hjelp av et vindu av forbindelser på en gang.
 Den støtter også "interaktiv modus" for interaktiv vedlikehold av
 eksterne verter.
 .
 Dette verktøyet er nyttig for administrasjon av PC-klynger, og flere verter.
 

Det er veldig fleksibel i planlegging og topologi: du kan be om noe nær et kall tre hvis nødvendig. Men standard er en enkel topologi med én kommando node til mange bladnoder.

http://www.netfort.gr.jp/~dancer/software/dsh.html

Svarte 21/10/2009 kl. 21:45
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more