comando in esecuzione su macchina remota usando ssh
-
10-07-2019 - |
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?
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!