The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Rex - Remote Execution

DESCRIPTION

(R)?ex is a small script to ease the execution of remote commands. You can write small tasks in a file named Rexfile.

You can find examples and howtos on http://rexify.org/

GETTING HELP

Dependencies

  • Net::SSH2

  • Expect

    Only if you want to use the Rsync module.

  • DBI

    Only if you want to use the DB module.

SYNOPSIS

 desc "Show Unix version";
 task "uname", sub {
     say run "uname -a";
 };

 bash# rex -H "server[01..10]" uname

See Rex::Commands for a list of all commands you can use.

CLASS METHODS

get_current_connection

Returns the current connection as a hashRef.

server

The server name

ssh

1 if it is a ssh connection, 0 if not.

is_ssh

Returns 1 if the current connection is a ssh connection. 0 if not.

get_sftp

Returns the sftp object for the current ssh connection.

connect

Use this function to create a connection if you use Rex as a library.

 use Rex;
 use Rex::Commands::Run;
 use Rex::Commands::Fs;
   
 Rex::connect(
    server      => "remotehost",
    user        => "root",
    password    => "f00b4r",
    private_key => "/path/to/private/key/file",
    public_key  => "/path/to/public/key/file",
 );
    
 if(is_file("/foo/bar")) {
    print "Do something...\n";
 }
     
 my $output = run("upime");