From 2b54b27ccad47a74b78eeadfabcb20a9d1a2cc33 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Mon, 25 Oct 2010 10:29:11 -0400
Subject: [PATCH] Updated some Helper scripts.
---
helper_scripts/dns_export_to_bind.php | 120 ++++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 76 insertions(+), 44 deletions(-)
diff --git a/helper_scripts/dns_export_to_bind.php b/helper_scripts/dns_export_to_bind.php
index 56628d7..ea5adf9 100644
--- a/helper_scripts/dns_export_to_bind.php
+++ b/helper_scripts/dns_export_to_bind.php
@@ -1,72 +1,104 @@
<?php
-$host="IP-Adresse-ISP-CONFIG-Master-Server";
-$user="MYSQL-USER";
+$host="IP_ADDRESS";
+$user="USERNAME";
$password="PASSWORD";
mysql_connect($host,$user,$password) or die(mysql_error());
mysql_select_db("dbispconfig");
$result = "";
$result = mysql_query("SELECT id,origin,ns,ttl,mbox,serial,refresh,retry,expire,minimum FROM dns_soa;");
function hostname2ipfunktion($tmp1, $timeout = 1)
- {
- if ($tmp1 == 0)
- {
- $query = `nslookup -timeout=$timeout -retry=0 $tmp1`;
- if(preg_match('/\nAddress: (.*)\n/', $query, $matches))
- return trim($matches[1]);
- return $tmp1;
- }
- }
+ {
+ if ($tmp1 == 0)
+ {
+ $query = `nslookup -timeout=$timeout -retry=0 $tmp1`;
+ if(preg_match('/\nAddress: (.*)\n/', $query, $matches))
+ return trim($matches[1]);
+ return $tmp1;
+ }
+ }
+
+$serialsearch=date("Ymd");
+$resultx12 = mysql_query("SELECT origin,serial FROM dns_soa WHERE serial LIKE '$serialsearch%' ORDER BY origin ASC;");
+while ($rowx12=mysql_fetch_array($resultx12)) {
+ $zone=substr($rowx12["origin"],0,-1);
+ $filename_x1="/var/cache/bind/".$zone;
+ if (file_exists($filename_x1)) {
+ $serialvergleich[$zone]=exec("grep \";Serial\" /var/cache/bind/$zone |cut -d\" \" -f1 | awk '{print $1}'");
+ }
+}
while($row = mysql_fetch_array($result))
- {
-### Hier ALLES Aktivieren bei Primary Nameserver ########################################################################################
- $varx11=substr($row["origin"],0,-1);
- unlink("/var/cache/bind/$varx11");
- $arr1[$x11]="zone \"$varx11\" in { type master; file \"$varx11\"; };\n";
- $x11=$x11+1;
- $result2 = mysql_query("select name,type,aux,data from dns_rr where zone=$row[id] ORDER BY name ASC;");
- $arr3[0]="\$TTL ".$row['ttl']."\n@ IN SOA ".$row['ns']." ".$row['mbox']." (\n ".$row['serial']." ;Serial\n"." ".$row['refresh']." ;Refresh\n"." ".$row['retry']." ;Retry\n"." ".$row['expire']." ;Expire\n"." ".$row['minimum']." ) ;Minimum\n\n";
+ {
+### Hier ALLES Aktivieren bei Primary Nameserver TEIL 1 #################################################################################
+ $varx11=substr($row["origin"],0,-1);
+ $filename="/var/cache/bind/".$varx11;
+ if (file_exists($filename)) {
+ unlink("/var/cache/bind/$varx11");
+ }
+ $arr1[$x11]="zone \"$varx11\" in { type master; file \"$varx11\"; };\n";
+ $x11=$x11+1;
+ $result2 = mysql_query("select name,type,aux,data from dns_rr where zone=$row[id] and active='Y' ORDER BY name ASC;");
+ $arr3[0]="\$TTL ".$row['ttl']."\n@ IN SOA ".$row['ns']." ".$row['mbox']." (\n ".$row['serial']." ;Serial\n"." ".$row['refresh']." ;Refresh\n"." ".$row['retry']." ;Retry\n"." ".$row['expire']." ;Expire\n"." ".$row['minimum']." ) ;Minimum\n\n";
- $xx1=1;
- while($row2 = mysql_fetch_row($result2))
- {
- $arr2[$xx1]=$row2['0']." IN ".$row2['1']." ";
+ $xx1=1;
+ while($row2 = mysql_fetch_row($result2))
+ {
+ $arr2[$xx1]=$row2['0']." IN ".$row2['1']." ";
- if ($row2['2']>0)
- {
- $arr3[$xx1]=$arr2[$xx1].$row2['2']." ".$row2['3']."\n";
- }
- else
- {
- $arr3[$xx1]=$arr2[$xx1].$row2['3']."\n";
- }
- $xx1=$xx1+1;
- }
- $f = fopen("/var/cache/bind/$varx11", "a+");
- foreach($arr3 as $values) fputs($f, $values);
- fclose($f);
- $arr2=array();
- $arr3=array();
-### ENDE Prim�rer Nameserver ###########################################################################################################
+ if ($row2['2']>0)
+ {
+ $arr3[$xx1]=$arr2[$xx1].$row2['2']." ".$row2['3']."\n";
+ }
+ else
+ {
+ $arr3[$xx1]=$arr2[$xx1].$row2['3']."\n";
+ }
+ $xx1=$xx1+1;
+ }
+ $f = fopen("/var/cache/bind/$varx11", "a+");
+ foreach($arr3 as $values) fputs($f, $values);
+ fclose($f);
+ $arr2=array();
+ $arr3=array();
+### ENDE Primärer Nameserver TEIL 2 #####################################################################################################
### Hier ALLES Aktivieren bei Secondary Nameserver ######################################################################################
# $tmp1 = substr($row["ns"],0,-1);
# $tmp2 = substr($row["origin"],0,-1);
-# $nsip = hostname2ipfunktion($tmp1);
-# if ($nsip == $tmp1) # {
+
+# if (!isset($dnscache[$tmp1])) $nsip = hostname2ipfunktion($tmp1) ;
+# else $nsip=$dnscache[$tmp1] ;
+
+# if ($nsip == $tmp1)
+# {
# echo "$tmp2 $tmp1 Not a valid Nameserver";
# echo "\n";
# }
-# else # {
+# else
+# {
+# $dnscache[$tmp1]=$nsip;
# $arr1[$x11]="zone \"".$tmp2."\" in { type slave; file \"".$tmp2."\"; masters {".$nsip."; }; };\n";
# $x11=$x11+1;
# }
### ENDE Secondary Nameserver ###########################################################################################################
- }
+ }
unlink ("/etc/bind/named.conf.local");
$fx = fopen("/etc/bind/named.conf.local", "a+");
foreach($arr1 as $values) fputs($fx, $values);
fclose($fx);
-exec("/etc/init.d/bind9 reload");
+system("rndc reconfig >/dev/null 2>&1");
+
+### ANFANG Primärer Namerserver TEIL 2 ##################################################################################################
+$serialsearch=date("Ymd");
+$resultx13 = mysql_query("SELECT origin,serial FROM dns_soa WHERE serial LIKE '$serialsearch%' ORDER BY origin ASC;");
+while ($rowx13=mysql_fetch_array($resultx13)) {
+ $serial_ist=($rowx13["serial"]);
+ $zone=substr($rowx13["origin"],0,-1);
+# echo "zone: ".$zone." ist: ".$serial_ist." vergleich: ".$serialvergleich[$zone]."\n";
+ if ($serialvergleich[$zone] != $serial_ist) {
+ $reload=system("rndc reload $zone >/dev/null 2>&1");
+ }
+}
+### ENDE Primärer NamerserverTEIL 2 ######################################################################################################
?>
\ No newline at end of file
--
Gitblit v1.9.1