Cleanup in files that is not php
[racktables] / gateways / ssh
index 03ed493..e22ee76 100755 (executable)
@@ -1,5 +1,9 @@
 #!/usr/bin/perl
 
+# This file is a part of RackTables, a datacenter and server room management
+# framework. See accompanying file "COPYING" for the full copyright and
+# licensing information.
+
 use strict;
 use Getopt::Long;
 
@@ -14,6 +18,7 @@ my $op_user;
 my $op_identity;
 my $op_dont_sudo;
 my $op_as_user;
+my $op_sh;
 GetOptions (
     'h' => \$op_help,
        'proto:i' => \$op_proto,
@@ -23,6 +28,7 @@ GetOptions (
     'sudo-user:s' => \$op_as_user,
     'username|l:s' => \$op_user,
     'identity|i:s' => \$op_identity,
+    'no-login|L' => \$op_sh,
 );
 if ($op_help) {
     &display_help;
@@ -40,12 +46,13 @@ sub display_help {
     print <<END;
 ssh batch client for RackTables.
 Takes commands list in standard input and gives the responses via standard output.
-Usage: 
+Usage:
 $0 <hostname> [-p <port>] [-l <username>] [-i <identity file>] [--connect-timeout=<seconds>] [--as-user=<username>] [--proto=<4|6>]
  -p, --port           TCP port number to connect to
  --proto              exclicitly specify IP protocol version
  -l, --username       remote username for ssh
  -i, --identity       identity file to authenticate
+ -L, --no-login       disable login shell (exec sh)
  --connect-timeout    timeout for giving up connecting process, seconds
  --as-user            sudo self as specified username
 
@@ -86,4 +93,4 @@ push @params, '-o', 'BatchMode=yes';
 push @params, '-o', 'CheckHostIP=no';
 push @params, '-o', 'LogLevel=ERROR';
 
-exec ('ssh', @params, $op_host) or die "cant exec ssh: $!"; 
+exec ('ssh', @params, $op_host, ($op_sh) ? ('sh') : ()) or die "cant exec ssh: $!";