Question

i want to run some command on several machine using ssh. I know it can be done by just using the command "ssh user@hostname command". However, the command i want to run print some string on the console. Is there any way that send all the strings back to the console that i'm on?

Was it helpful?

Solution

You could run the commands in a screen:

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

You can then detach (Ctrl-D) from the screen, let it run for however long it will run, then re-attach (screen -r test) to the screen and see all of the output. This assumes that you won't have a ton of output from the commands, however. Here's a link to a tutorial on screen.

OTHER TIPS

 ssh user@hostname command 

Does just that. if 'command' outputs something, it'll show on the terminal you ran ssh from. Try e.g. ssh user@hostname ls -l

But as others have said, GNU screen is invaluable for this type of work.

You probably want to use Gnu Screen for this. You can start a process in a "virtual" terminal, "detach" the terminal and log out for however long you want... Then you can ssh back in and re-attach the terminal to see the console output.

Also have a look at nohup, for example:

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

Then if you want to go back and monitor the progress, you could check back and tail the file or scp the output back to your local machine.

Why don't you send you an email back? Or use a log file, and scp it to your current computer? otherwise, I don't know!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top