Ich will ein PHP-Script schreiben und per Crontab aufrufen

Bash, Shell, PHP, Python, Perl, CGI
bernard
Posts: 45
Joined: 2002-12-24 18:52

Ich will ein PHP-Script schreiben und per Crontab aufrufen

Post by bernard »

Hallo !

ich habe einen Root Server und einen weiteren Server, der an einer DSL Leitung hängt.

Auf dem Rootserver habe ich eine Subdomain, die auf den "DSL-Server" umleitet. Die jeweilige IP steht in einer Textdatei und wird per PHP included.

Wie könnte ich das IP-Update Script elegant über die Crontab starten ? Es geht also darum von dem "DSL-Server" eine Textdatei auf dem Rootserver zu schreiben.

Einen Nameserver extra deswegen aufzusetzen, finde ich erstmal etwas heftig oder was meint ihr ? Hat jemand einen Tip oder eine superbessere Lösung ?

Gruss
B.
Last edited by bernard on 2004-03-12 20:23, edited 1 time in total.
robertw
Posts: 165
Joined: 2002-12-17 16:10
Location: Berlin

Re: Ich will ein PHP-Script schreiben und per Crontab aufrufen

Post by robertw »

Hallo Bernard,

Du kannst Dein PHP-Script auf direkt als Shell-Script verwenden.

Das sieht dann so aus:

Code: Select all

#!/usr/bin/php -f
<?php
     echo "Hallo Weltn";
?>
Ausführungsrechte setzen und Du kannst dieses Script ohne Probleme per Cronjob starten.

Und dann solltest Du Dir die Funktion fopen ansehen. Die kann nicht nur Dateien, sondern auch Webseiten öffnen.

Wie hast Du denn die Weiterleitung auf dem Root-Server realisiert? Würde mich mal interessieren, weil ich im Augenblick an einer ähnlichen Lösung arbeite.

Robert
bernard
Posts: 45
Joined: 2002-12-24 18:52

Re: Ich will ein PHP-Script schreiben und per Crontab aufrufen

Post by bernard »

Hi Robert !

ich trau mich garnicht zu beschreiben wie ich das realisiert habe :) ist echt banal.

auf dem rootserver liegt in einem geschützen bereich eine datei writeip.php. der dsl-server ruft die writeip-php auf. das script schreibt die $REMOTE_ADDRESS in eine Textdatei und das wars. Diese Textdatei wird dann von der index.php gelesen und für das Umleiten verwendet.

So aber eins hab ich nicht verstanden mit Deiner Shell Geschichte. Wie rufe ich den aus der Crontab des DSL-Servers das Script auf dem Rootserver auf ?

Gruss
Bernard
robertw
Posts: 165
Joined: 2002-12-17 16:10
Location: Berlin

Re: Ich will ein PHP-Script schreiben und per Crontab aufrufen

Post by robertw »

Bernard wrote:ich trau mich garnicht zu beschreiben wie ich das realisiert habe :) ist echt banal.
Die banalsten Lösungen sind meist die schönsten.
:-)
Bernard wrote:auf dem rootserver liegt in einem geschützen bereich eine datei writeip.php. der dsl-server ruft die writeip-php auf. das script schreibt die $REMOTE_ADDRESS in eine Textdatei und das wars. Diese Textdatei wird dann von der index.php gelesen und für das Umleiten verwendet.
In der index.php führst Du also nur einen Redirect (header "Location:...") aus?

Wenn Du nicht unbedingt auf eine Subdomain unter Deiner eigenen Domain bestehst, solltest Du Dir mal dyndns ansehen. Hier bekommst Du auch fertige Scripte, die den Eintrag automatisieren.
Bernard wrote:So aber eins hab ich nicht verstanden mit Deiner Shell Geschichte. Wie rufe ich den aus der Crontab des DSL-Servers das Script auf dem Rootserver auf ?
Wenn Du ein Script von Deinem DSL-Server auf dem Root-Server aufrufen willst, dann ist der von Dir beschriebene Weg sicher der einfachste und unkomplizierteste. Sicher gibt es für den Fernstart von Scripten auch andere Varianten, aber die sind entweder schwerer zu konfigurieren oder unsicherer. Du solltest allerdings SSL benutzen, sonst wird Dein PW im Klartext übertragen.

Mein Vorschlag bedeutet lediglich, dass Du auf Deinem DSL-Server keinen Browser mehr hast, sondern die Seite vom Root-Server über ein PHP-Script lädst, dass per Cronjob alle x Minuten gestartet wird. Hierbei hilft Dir die Funktion fopen. Du kannst aber auf wget installieren und die Seite via wget laden (per Conrjob gestartet).

Reloadest Du den Browser auf dem DSL-Server im Augenblick per Hand? Diese Arbeit würde Dir mein vorgeschlagenes PHP/fopen oder wget Script abnehmen. Mehr nicht. :-)

Robert
hbaes
Posts: 70
Joined: 2002-10-08 21:04

Re: Ich will ein PHP-Script schreiben und per Crontab aufrufen

Post by hbaes »

Dumme Frage:

Du willst doch quasi nur die IP bei jedem Reconnect Deines DSL Servers auf deinem Rootserver updaten, oder ?

Habe das folgendermaßen gelöst:
1.) Am Server liegt ein php script, das folgende Optionen annimmt:
a.) act=reg //für Update der IP
b.) act=qry // für query am Bildschirm
c.) act=fwd // für automatischen forward (Header("Location ...."))

dem Script wird weiterhin eine eindeutige Bezeichnung für die Subdomain übergeben. (Die Daten landen in einer mysql-Table)

2.) Ich habe bei meinem DSL Suse 8 laufen und da hab ich unter /etc/ppp/ip-up.local ganz einfach folgendes eingetragen ...

Code: Select all

lynx -source "www.domain.tld/apps/dyndns.php?act=reg&kd=test&ip=$4" | logger
noch Fragen ?

Harald
doc
Posts: 80
Joined: 2003-01-02 05:47
Location: Mainz

Re: Ich will ein Dyn-DNS Script schreiben per Crontab aufruf

Post by doc »

Bernard wrote:Hallo !

ich habe einen Root Server und einen weiteren Server, der an einer DSL Leitung hängt.


Wie könnte ich etwas vergleichbares elegant über ein Script, welches aus der Crontab gestartet wird, realisieren ? Es geht also darum von dem "DSL-Server" eine Textdatei auf dem Rootserver zu schreiben.

Einen Nameserver extra deswegen aufzusetzen, finde ich etwas heftig oder was meint ihr ? Hat jemand einen Tip oder eine superbessere Lösung ?

Gruss
Bernard
installier gnudip und du hast nen dyndns server. dann nimm den gnudip client zuhause. und wenn dus ganz komfortabel willst instalierst du auf beiden servern bind.

http://gnudip2.sourceforge.net