leider haut das nicht hin
Code: Select all
<?php
system("rcnamed restart");
?>
danke.
daniel
Code: Select all
<?php
system("rcnamed restart");
?>
Code: Select all
sh: line 1: rcnamed: command not found
Code: Select all
<?
echo sytem('whoami');
?>
lest doch bitte richtig, er führ dieses PHP als Script auf der Shell von Cron aus auf, also klar ist er dort root... lesen dann schreien!arty wrote:Du lässt Deinen Apache mit mod_php als root laufen???
Oder noch besser die Shell selber ...Trotzdem rate ich dir für solche Dinge Perl zu nehmen, PHP ist einfach nicht für die Shell gemacht.
Code: Select all
<?php require_once('../../Connections/kr_media.php'); ?>
<?php
# Diese Datei wird über den CRON Daemon aufgerufen alle 15 Minuten
# Sollte das Script feststellen, das in den letzten 15 Minuten
# Eintragungen geupdated oder hinzugefügt worden sind
# wird dies die NS Config neu Schreiben und den NS
# neu starten
$jetzt = time()-(15*60); // Zeit jetzt - 15 Minuten
mysql_select_db($database_kr_media, $kr_media);
$query_check_neue_eintraege = "SELECT dns_records.id FROM dns_records WHERE dns_records.erstellt > '$jetzt';";
$check_neue_eintraege = mysql_query($query_check_neue_eintraege, $kr_media) or die(mysql_error());
$row_check_neue_eintraege = mysql_fetch_assoc($check_neue_eintraege);
$totalRows_check_neue_eintraege = mysql_num_rows($check_neue_eintraege);
if ($totalRows_check_neue_eintraege > 0) { // Wenn neue Einträge in den letzten 15 Minuten
// Alle DNS Records auslesen
mysql_select_db($database_kr_media, $kr_media);
$query_lese_alle_dns_records = "SELECT * FROM dns_records";
$lese_alle_dns_records = mysql_query($query_lese_alle_dns_records, $kr_media) or die(mysql_error());
$totalRows_lese_alle_dns_records = mysql_num_rows($lese_alle_dns_records);
// Originalkopie der named.conf einlesen um neue Records anzufügen
$fp = fopen('named.orig', 'r');
while (!feof($fp)) {
$named_orig .= fread($fp, 128);
}
fclose($fp);
// named.conf neu schreiben anhand der Datenbankeinträge
$fp = fopen('/etc/named.conf', 'w');
fputs($fp, $named_orig, strlen($named_orig)); // named.conf neu erstellen
while ($res = mysql_fetch_object($lese_alle_dns_records, MYSQL_ASSOC)) {
fputs($fp, $res->named_template, strlen($res->named_template));
$fp2 = fopen ("/var/named/".$res->domain.".".$res->tld.".zone", "w");
fputs($fp2, $res->zonefile_template, strlen($res->zonefile_template));
fclose($fp2);
}
fclose($fp);
// Nameserver reloaden nachdem alle Daten geschrieben wurden
echo "DNS Server wurde modifiziert.<br>";
echo "Serverausgabe nach Neustart:<br>";
echo system("/usr/sbin/rcnamed restart");
}
mysql_free_result($check_neue_eintraege);
?>
Code: Select all
p15119052:/ # php -q /home/www/web2/html/de/dns-tools/cron_dns_config.php
Shutting down name server bind9 ..done
Starting name server bind9 ..done
Code: Select all
/usr/sbin/rcnamed: line 41: checkproc: command not found
/usr/sbin/rcnamed: line 43: killproc: command not found
..failedShutting down name server bind9 - Warning: named not running !
/usr/sbin/rcnamed: line 30: checkproc: command not found
/usr/sbin/rcnamed: line 36: startproc: command not found
..failedStarting name server bind9
Code: Select all
p15119052:/etc/init.d # killall -HUP named
Code: Select all
Mar 4 14:54:49 p15119052 /usr/sbin/named[29578]: loading configuration from '/etc/named.conf'
Mar 4 14:54:49 p15119052 /usr/sbin/named[29578]: no IPv6 interfaces found