Domanda

Voglio eseguire alcuni comandi su più macchine usando ssh. So che può essere fatto semplicemente usando il comando " ssh user @ hostname command " ;. Tuttavia, il comando che voglio eseguire stampa una stringa sulla console. Esiste un modo per inviare tutte le stringhe alla console su cui mi trovo?

È stato utile?

Soluzione

È possibile eseguire i comandi in una schermata :

screen -S test
ssh user@hostname command1
ssh user@hostname2 command2

È quindi possibile staccare (Ctrl-D) dallo schermo, lasciarlo funzionare per tutto il tempo che verrà eseguito, quindi ricollegarlo (test schermo -r) allo schermo e vedere tutto l'output. Questo presuppone che non avrai una tonnellata di output dai comandi, comunque. Ecco un link a un tutorial sullo schermo .

Altri suggerimenti

 ssh user@hostname command 

Fa proprio questo. se 'command' emette qualcosa, verrà mostrato sul terminale da cui hai eseguito ssh. Prova ad es. ssh user @ hostname ls -l

Ma come altri hanno già detto, lo schermo GNU è prezioso per questo tipo di lavoro.

Probabilmente vuoi usare Gnu Screen per questo. Puoi avviare un processo in un " virtuale " terminale ", staccare" il terminale e disconnettersi per tutto il tempo desiderato ... Quindi è possibile tornare indietro e ricollegare il terminale per vedere l'output della console.

Dai un'occhiata anche a nohup , ad esempio:

ssh user@domain.com nohup script_that_outputs_strings.py > the_strings.txt

Quindi, se si desidera tornare indietro e monitorare l'avanzamento, è possibile ricontrollare e tail il file o scp l'output sul computer locale.

Perché non ti rispedisci un'email? Oppure usa un file di registro e lo scp sul tuo attuale computer? altrimenti, non lo so!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top