Progress Programmer
Progress Programmer

Reputation: 7394

running command on remote machine using ssh

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?

Upvotes: 3

Views: 12329

Answers (5)

unmounted
unmounted

Reputation: 34388

Also have a look at nohup, for example:

ssh [email protected] 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.

Upvotes: 1

Dan Wolchonok
Dan Wolchonok

Reputation: 1940

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.

Upvotes: 7

nos
nos

Reputation: 229108

 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.

Upvotes: 6

Mark Rushakoff
Mark Rushakoff

Reputation: 258198

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.

Upvotes: 1

Aif
Aif

Reputation: 11220

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!

Upvotes: -1

Related Questions