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/dnsupd
#!/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;
$backup_server = "garage";
$application = "DNS Updates";
$TPATH="/home/system/backup/live/" . $local_server. "/";
$SPATH="/ibin/conf/dns/";
$slave_path = "/var/named/chroot/var/named/slaves/";

$width = 120;
$print_line = "\033[37;44m" . "-" x $width . "\033[0m\n";

$print_line = "\033[37;44m\033[1m---------------------------------------------------------------------------------\033[0m\n";


#if ($local_server eq "Saturn" or $local_server eq "Camaro") {
if ($local_server eq "Camaro") {


system("chown root:named /var/named/chroot/var/named/*");


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

$print_info = "\033[37;44m You Are On Server: \033[1;33m" . $local_server . "     " . $application;
$padding = &pad($print_info, 120 );

print $print_line;
print $print_info . $padding . "\n";
print $print_line;
   print "\n";
   print "\n";


system("cd /ibin/conf/dns/ && make");


#-----< 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,
	$cpu,
	$dns_type,
	$dns_server,
	$dns_new
   
   
   ) = split(/\|/, $line);
   
   next if $dns_server =~ /n/;
   $server_name = $server; 
   $server_name =~ s/(\w+)/\u\L$1/g;


#-----< Erase remote Zones >------------------------------------------------------------
   if($ARGV[0] eq "c") {
        print "Cleanup Zone Files\n";
	system ( "ssh $server rm -rf $slave_path/*" );
	$cleanloop = "1";
   }

#-----< Backup Routine >--------------------------------------------------------------------
   if ($hostname eq $server) {
      $backup_server = "garage";
      $TPATH="/home/system/backup/live/" . $server. "/";

      $print_info = "\033[37;44m Backing UP Configuration\033[0m\n" ;
      $padding = &pad($print_info, 120 );

      print $print_line;
      print $print_info . $padding . "\n";
      print $print_line;

      system( "/ibin/backup_dns dns local");
      system( "/ibin/backup_dns dns remote");

   }


   $print_info = "\033[37;44m Updating Server: \033[1;33m" . $server_name . " OS: " . $os_ver ;
   $padding = &pad($print_info, 120 );

   print $print_line;
   print $print_info . $padding . "\n";
   print $print_line;
   if($ARGV[0] eq "c") {
      print "\033[1;33m" .  "Cleaning Zone Files" . "\033[1;33m \n";
#exit
   }

#-----< Distribute conf file to ALL Servers >-------------------------------------------------------------------------

if ($dns_type eq "DNSC") {
   $TPATH_ETC="/var/named/chroot/etc/";
   $TPATH_NAMED="/var/named/chroot/var/named/";

} else {
   $TPATH_ETC="/etc/";
   $TPATH_ETC2="/var/named/chroot/etc/";
   $TPATH_NAMED="/var/named/";
   $TPATH_NAMED2="/var/named/chroot/var/named/";
}


#   print "scp db.conf/" . $server . "-named.conf " . $server . ":${TPATH_ETC}named.conf\n";
#   print "ssh " . $server . " /sbin/service named restart\n";
   system("rsync -auv " . $SPATH . "db.conf/" . $server . "-named.conf " . $server . ":${TPATH_ETC}named.conf\n");
   system("rsync -auv " . $SPATH . "db.conf/" . $server . "-named.conf " . $server . ":${TPATH_ETC2}named.conf\n");


#-----< Restart DNS Service >--------------------------------------------------------

if ($dns_new eq "n") {
   system("ssh " . $server . " /etc/rc.d/init.d/named restart\n");
} else {
   system("ssh " . $server . " systemctl restart named\n");
}
   print "\n";

}





close(SERVERS);
exit;


} else {

   print "Not Running on Saturn!\n";
}





sub pad {

  my $text   = $_[0];
  my $length = length($text);
  my $spaces = $_[1] - $length;
  my $blank  = "";

  for($i = 1; $i <= $spaces; $i++) {
    $blank .= " ";
  }

  return("$blank");
}