Bind per PHP neustarten

Bash, Shell, PHP, Python, Perl, CGI
drbunsen
Posts: 31
Joined: 2003-05-26 10:56

Bind per PHP neustarten

Post 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
dodolin
Posts: 3840
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Bind per PHP neustarten

Post 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.
drbunsen
Posts: 31
Joined: 2003-05-26 10:56

Re: Bind per PHP neustarten

Post by drbunsen »

Danke,
daran lag es. Aber warum ist bei cronjob /sbin nicht im $path drin.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Bind per PHP neustarten

Post 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.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc