File: //ibin/saturn
#!/usr/bin/perl
# Global Command: Execute command on all servers in server list
$file_name = $ARGV[0];
$local_server = $ENV{HOSTNAME};
($hostname, $domain, $extension) = (split /\./, $local_server);
$local_server = $hostname;
$local_server =~ s/(\w+)/\u\L$1/g;
$print_line = "\033[37;44m\033[1m---------------------------------------------------------------------------------\033[0m\n";
#-----< Print Header >--------------------------------------------------------------------
system("clear");
$print_info = "\033[37;44m You Are On Server: \033[1;33m" . $local_server ;
$padding = &pad($print_info, 96 );
print $print_line;
print $print_info . $padding . "\n";
print $print_line;
print "\n";
print "\n";
#-----< Process DB >-----------------------------------------------------------------------
open( SERVERS,"/ibin/conf/server_list") || die("Unable to open server_list file!\n");
while($line = <SERVERS>) {
chomp($line);
next if $line =~ /#/;
(
$server,
$os_ver
) = split(/\|/, $line);
$server_name = $server;
$server_name =~ s/(\w+)/\u\L$1/g;
$print_info = "\033[37;44m Updating Server: \033[1;33m" . $server_name . " OS: " . $os_ver ;
$padding = &pad($print_info, 96 );
print $print_line;
print $print_info . $padding . "\n";
print $print_line;
print "ssh " . $server . " \"" . $file_name ."\"\n";
system( "ssh " . $server . " \"" . $file_name ."\"\n");
print "\n";
}
close(SERVERS);
sub pad {
my $text = $_[0];
my $length = length($text);
my $spaces = $_[1] - $length;
my $blank = "";
for($i = 1; $i <= $spaces; $i++) {
$blank .= " ";
}
return("$blank");
}