Page 1 of 1

Bind per PHP neustarten

Posted: 2003-07-02 11:52
by drbunsen
Hi,
ich hab mir ein Webinterface für mein Nameserver geschrieben, das zwei dateien erzeugt "bunsen.bind" und "stefan.bind". Diese sind per include in die /etc/named.conf aufgenommen. Ein script prüft immer ob sich was geändert hat, und startet notfalls den Nameserver neu.
Prinzipel funktioniert das alles wunderschön, wenn ich das script per "php /var/named/php_named_transfer.php > /dev/null" in der Konsole direkt eingebe.
Aber wenn der gleiche Befehl als Cronjob läuft bekomme ich immer ne mail an den root,das es nicht geklappt hat.

Hier mal der Code:

php_named_transfer.php

Code: Select all

<?php

$pfad = "/home/www/web6/html/domain/php_named";
$neustart = "Nein";

If (filemtime('/var/named/bunsen.bind') < filemtime($pfad . '/bunsen.bind')) {
        exec('rm /var/named/bunsen.bind');
        exec('cp ' . $pfad . '/bunsen.bind /var/named/bunsen.bind');
        $neustart = "Ja";

}

If (filemtime('/var/named/stefan.bind') < filemtime($pfad . '/stefan.bind')) {
        exec('rm /var/named/stefan.bind');
        exec('cp ' . $pfad . '/stefan.bind /var/named/stefan.bind');
        $neustart = "Ja";

}

If ($neustart == "Ja") {
        system('/etc/init.d/named restart');

}
Die Fehlermail an root:

Code: Select all

From root@pxxxxxxxx.pureserver.info (Cron Daemon) 
To root@pxxxxxxxx.pureserver.info 
Date Wed, 2 Jul 2003 11:51:01 +0200 (CEST) 
Subject Cron <root@pxxxxxxxx> php /var/named/php_named_transfer.php > /dev/null 
 

/etc/init.d/named: line 41: checkproc: command not found
/etc/init.d/named: line 43: killproc: command not found
..failed/etc/init.d/named: line 30: checkproc: command not found
/etc/init.d/named: line 36: startproc: command not found
..failed

Re: Bind per PHP neustarten

Posted: 2003-07-02 12:14
by dodolin
Dein $PATH dürfte wohl die genannten Kommandos nicht enthalten. Entweder im Startskript absolute Pfade benutzen (solle man eigentlich eh machen...) oder $PATH anpassen.

Re: Bind per PHP neustarten

Posted: 2003-07-02 13:45
by drbunsen
Danke,
daran lag es. Aber warum ist bei cronjob /sbin nicht im $path drin.

Re: Bind per PHP neustarten

Posted: 2003-07-02 13:56
by captaincrunch
Sofern du den Cronjob (hoffentlich) nicht als root ausführen lässt ist klar, warum /sbin (also Binaries, die nur root zugänglich sein sollen) nicht im $PATH liegt.

Ansonsten kannst du in der Crontab auch einen eigenen $PATH definieren.