HEX
Server: Apache
System: Linux viper.innovativeinternet.net 4.18.0-553.80.1.lve.el8.x86_64 #1 SMP Wed Oct 22 19:29:36 UTC 2025 x86_64
User: thetradingroom (1095)
PHP: 8.3.25
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //ibin/pbx-distr
#!/usr/bin/perl
# Global Command: Execute command on all servers in server list

$file_name = $ARGV[0];
if (! defined $file_name ) 
{ 
print "No Parameters Specified\n";
exit 
};

$local_server = $ENV{HOSTNAME};
($hostname, $domain, $extension) = (split /\./, $local_server);

$local_server = $hostname;
$local_server =~ s/(\w+)/\L$1/g;


$width = 150;
$top_print_line = "\033[37;44m" . " " x $width . "\033[0m\n";
$bot_print_line = "\033[37;44m" . "_" x $width . "\033[0m\n";

#-----< Print Header >--------------------------------------------------------------------
system("clear");

$message = " You Are On Server: ";
$info = $local_server;
$print_info = $message . $info ;
$padding = &pad($print_info, $width );

print $top_print_line;
print "\033[37;44m" . $message . "\033[1;33m" . $info . $padding . "\n";
print $bot_print_line;
print "\n\n";



#-----< Process DB >-----------------------------------------------------------------------
open( SERVERS,"/ibin/conf/pbx_server_list") || die("Unable to open server_list file!\n");

while($line = <SERVERS>) {


   chomp($line);
   next if $line =~ /#/;
   (

    $server,
	$os_ver,
	$cpu,
	$box
   
   
   ) = split(/\|/, $line);
   
   next if $local_server eq $server;

   $server_name = $server; 
   $server_name =~ s/(\w+)/\u\L$1/g;

#----------------------
   $message = " Updating Server: ";
   $info = $server_name . "  -- OS:" . $os_ver . "  CPU:" . $cpu . "  Box:" . $box;
#   $print_info = " Updating Server: " . $server_name . "  OS:" . $os_ver . "  CPU:" . $cpu . "  Box:" . $box;

   $padding = &pad($message . $info, $width );

   print $top_print_line;
   print "\033[37;44m" . $message . "\033[1;33m" . $info . $padding . "\n";
   print $bot_print_line;

#----------------------

#   print "scp " . $file_name . " " . $server . ":" . $file_name ."\n";
   system( "rsync -auv " . $file_name . " " . $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");
}