Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^3: Generic Broadcast SSH Launcher

by salva (Abbot)
on May 10, 2013 at 15:12 UTC ( #1032972=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Generic Broadcast SSH Launcher
in thread Generic Broadcast SSH Launcher

There shouldn't be any issues combining both modules.

Check also Net::OpenSSH::Parallel.


Comment on Re^3: Generic Broadcast SSH Launcher
Replies are listed 'Oldest First'.
Re^4: Generic Broadcast SSH Launcher
by QM (Vicar) on Nov 19, 2013 at 11:02 UTC
    I've come back to this now, and tried N:O:P. It makes it very simple, here's the core of the script:
    for my $host (@hosts) { $pssh->add_host($host, user => $user); } $pssh->push('*', 'command', { stderr_to_stdout => 1 }, $cmd ); $pssh->run;

    My next problem is that I want to decorate the return from each host, to tell them apart. Perhaps something like this:

    %) net.pl -c uptime kermit fozzy kermit) 10:49:37 up 3 days, 21:38, 0 users, load average: 1.00, 1.0 +1, 1.05 fozzy) 10:49:37 up 6 days, 21:08, 0 users, load average: 1.00, 1.0 +1, 1.05

    I'm not sure how I would extend N:O:P to do this. Probably have to go back into N:O.

    See my OP for an update, as I had a D'oh moment, and realized it was that easy.

    -QM
    --
    Quantum Mechanics: The dreams stuff is made of

      A pipe can be attached to the output stream:
      $pssh->push('*', 'command', { stderr_to_stdout => 1, stdout_file => ['|-', 'perl', '-ne', 'pr +int "%HOST%$_\n"'] }, $cmd );
      Or the more efficient:
      require POSIX; my %fh; for my $host (@hosts) { my $pid = open my $fh, '|-'; if (not $pid) { while (<>) { print "$host) $_"; } POSIX::_exit(0); } $fh{$host} = $fh; $pssh->add_host($host, default_stderr_fh => $fh, default_stdout_fh = +> $fh); } $pssh->push('*', 'command', $cmd ); $pssh->run; close $_ for values %fh;
      Note that lines comming from stderr and stdout may arrive intermixed. A more correct solution would be to use different filters for stderr and stdout.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1032972]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (18)
As of 2015-07-07 16:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (91 votes), past polls