Hi,
I have a ruby script which I tested locally on my machine,
I want to execute it on three remote servers, Is there a way to execute
it remotely without connecting to every machine and executing it
Or Can I use a master server to run the script on the three machines, by
connecting to only one server
rgds
There isn’t really enough information here to venture an opinion.
Do the remote servers have ruby installed? Does the script need to be
run on the machine, or can it do what it needs to do across the network
(e.g. update a shared folder)? What O/S are these servers running? Do
you intend to run this script on a schedule, or on demand? How are these
machines networked?
Focon Rubix wrote in post #1143709:
I want to execute it on three remote servers,
Can I use a master server to run the script on the three machines, by
connecting to only one server
on linux and co, you can use dsh (distributed shell)
"
Doing
dsh -g children -c – uname -a
will execute programs on group “children”, which is specified in
${HOME}/.dsh/group/children
http://www.netfort.gr.jp/~dancer/software/dsh.html.en
Joel P. wrote in post #1143804:
There isn’t really enough information here to venture an opinion.
Do the remote servers have ruby installed?
Yes ruby is installed on every server
Does the script need to be run on the machine, or can it do what it needs to do
across the network
the server has to be run on the machine, generally I ssh the machine I
navigate to its diectory and then run it: ruby script.rb
(e.g. update a shared folder)? What O/S are these servers running?
I have ubuntu installed on every server
Do you intend to run this script on a schedule, or on demand?
Mainly, on demand
How are these machines networked?
I am using a cloud server, servers are in a vps
Thank for answering me,answers in line
If there is no other solution I am considering the solution of raubarede
Else I found gearman but I think I have to learn it first and I have to
change a little bit my code
rgds,
the second solution will be great for me, no need for simultaneous
execution on different servers
I am OK with a program on my computer telling one server at a time to
run the scripts
How can I do that, is there a gem for this?
can you give an example of script executing locally and firing a script
remotely
I am able to deploy it with capistrano on all servers but what to do
after that?
rgds
Focon Rubix wrote in post #1144302:
the second solution will be great for me, no need for simultaneous
execution on different servers
I am OK with a program on my computer telling one server at a time to
run the scripts
How can I do that, is there a gem for this?
can you give an example of script executing locally and firing a script
remotely
I am able to deploy it with capistrano on all servers but what to do
after that?
rgds
If you can SSH into each of the servers, then you can use the Net::SSH
library to tell the virtual machine on the servers to run a script.
This shell command works for running any script:
“ruby”, followed by a space and the full path to the script.
Focon Rubix wrote in post #1143709:
Is there a way to execute
it remotely without connecting to every machine and executing it
By that, do you mean you want all three servers to run the scripts
simultaneously, or are you OK with a program on your computer telling
one server at a time to run the scripts?
Either way, the task can easily be done using a Ruby script that is run
on your machine. If you want the scripts run by one server at a time,
create a Ruby script that tells the virtual machine to connect to one
server, tell it to run the script, then drop the connection and repeat
with the other two servers. If, however, you want the scripts run
simultaneously, just create a Ruby script that tells the virtual machine
on your computer to create one thread per server and use them to connect
to any server and tell it to run the scripts you want it to run.