Durch EMail oder Zeitschleife ein PHP-Skript starten?

Gast #2911271
Lesenswert?

Ich suche nach einer Möglichkeit, auf einem Webserver mit Apache, PHP 
und MySQL entweder durch Zusenden einer Mail oder einfach so (Polling) 
regelmäßig ein PHP-Skript auszulösen, welches dann weitere Aufgaben 
erfüllt.

Soweit mir bekannt ist, wird PHP ausgeführt, während eine PHP 
enthaltende Seite aus dem Server "gelutscht" wird, was ja eigentlich nur 
beim Abruf per Browser oder einer anderen aktiven Instanz (Programm auf 
Rechner) passiert.

Ich hab' schon mal was von sog. "Chronjpbs" gehört, aber auch die setzen 
einen Rechner und vor Allem Linux-Kenntnisse und Server-Zugriff auf 
einem Level voraus, die ich nicht habe.

Theoretisch kann sich ja ein PHP-Skript auch selber aufrufen, aber geht 
das ohne dass es von irgendwelchen Sicherheitsmechanismen auf dem Server 
abgewürgt wird? Ist das zuverlässig? Danke für Tips.
Persönliche Seite #2911289
Lesenswert?

Ein auf einem Webserver liegendes PHP-Skript kann nur dann in einem 
anderen Kontext als der Darstellung einer Webseite aufgerufen werden, 
wenn weitergehender Zugriff auf das Betriebssystems des Rechners 
besteht, auf dem der Webserver läuft. Eben per cron-job (auf unixoiden 
Systemen), per Task-Planner (Windows) o.ä.

Das von Dir abschließend angesprochene "Selbstaufrufen" eines 
PHP-Skriptes wird vom Webserver gezielt unterbunden, und das ist auch 
gut so. Bedenke: Auf so einem Webserver ist man nicht alleine, der soll 
auch die Anfragen etlicher weiterer Anwender bearbeiten, und deswegen 
ist die Ausführungszeit von CGI-Funktionen o.ä. so kurz wie nur möglich 
zu halten -- und wird bei Überschreiten hart abgebrochen.

Weas für ein Problem versuchst Du zu lösen?
Gast #2911310
Lesenswert?

Rufus Τ. Firefly schrieb:
> Weas für ein Problem versuchst Du zu lösen?

Den regelmäßigen Abruf (und eine Reaktion darauf) auf bestimmte Zustände 
und Ereignisse. Z.B. Mailabruf und bei bestimmtem Inhalt SMS-Versand per 
Sipgate-API. Oder Messwerte aus einem Empfänger lesen und in MySQL 
eintragen usw.

Habe aber vor Ort keinen Rechner, der das zuverlässig erledigt bzw. 
"nur" ein Qnap, aber keine Ahnung von den erforderlichen Linux-Untiefen. 
Ausserdem ist dann noch ein weiterer Player im Boot. Wär gut, wenn der 
Webserver (oder irgendwas dort) das alleine könnte.
Gast #2911347
Lesenswert?

Avr Nix schrieb:
> Vielleicht sowas hier http://www.cron-job.org/cgi-bin/cronweb
> der ruft dann deine Seite auf den Webserver auf.

Das sieht eigentlich ganz gut aus, aber wie zuverlässig ist das? 
Ausserem ist mein Bedarf eher auf ein Intranet bezogen, das würde 
zusätzlich ein Loch im System bedeuten ... verflixt aber auch!

Muss ich mich wohl doch mit dem Qnap auseinandersetzen. Habe hier eine 
Anleitung gefunden, aber bisher keine Ahnung, ob ich das verstehen 
werde:

http://wiki.qnap.com/wiki/Add_items_to_crontab
#2911409
Lesenswert?

Frank schrieb:
> Wär gut, wenn der Webserver (oder irgendwas dort) das alleine könnte.

Wenn auf dem Webserver ein UNIX/LINUX Betriebssystem läuft, ist ein 
CRON-Job schon der richtige Ansatz, um regelmäßige Aufgaben ausführen zu 
lassen.

Zum Editieren der Cron-Tabelle benötigst Du nur einen User-Account zum 
Betriebssystem des Webservers. Das muß nicht unbedingt ein lokaler 
Zugang sein, es reicht, wenn Du Telnet- oder SSH-Zugang für Fernzugriff 
hast.

Frag einfach den Administrator des Servers, ob er Dir einen Telnet (eher 
unsicher) oder einen SSH-Zugang zum Rechner einrichtet, und zwar einen, 
bei dem User-Crontabellen nicht gesperrt sind.

Es ist kein Root-Zugang zum Server notwendig, auch User können eigene 
Crontabellen haben und anlegen, wenn der Administrator das Feature nicht 
sperrt.

Und wenn Du dann diesen User-Account mit Fernzugriff auf dem Rechner 
hast und ein Windows-Nutzer bist, lade Dir "Putty" als Zugangsprogramm 
herunter, logge Dich in den Rechner ein und editiere die Crontabelle!

Falls dann noch Fragen sind, was Du in die Crontabelle reinschreiben 
sollst, kannst Du ja nochmal fragen.

Ach ja: Am besten übst Du auf einem beliebigen UNIX/LINUX vorher mal den 
Umgang mit dem vi-Editor, schaue Dir insbesondere an, wie "Speichern und 
Beenden" mit diesem Editor funktioniert! Mit dem Crontab-Editor geht es 
dann nämlich genau so.

-----
Andere Möglichkeit mit "Extern-Zugriff":
Besorge Dir ein "Arduino-Uno" Board und ein "Ethernet-Shield" (mit W5100 
Chip), stecke beides Zusammen, auch ein Netzwerkkabel rein und ans LAN 
klemmen, und lade auf den Mikrocontroller ein kleines Programm drauf, 
das in einer Endlosschleife nichts weiter macht als in regelmäßigen 
Zeitabständen seine interne Zeit mit einem Zeitserver abzugleichen und 
zu den von Dir vorherbestimmten Zeiten bestimmte Webseiten abzurufen. 
Das würde auf einfache Art aber nur mit HTTP (nicht HTTPS) Seiten 
funktionieren. Demo-Code für den Arduino kann ich Dir auf Wunsch senden.

Die Extern-Lösung kostet Dich dann nur einige Euronen extra für die 
Anschaffung plus 3 Watt extra Stromverbrauch. Cronjob auf dem Server 
würde nix extra kosten.
Persönliche Seite #2911423
Lesenswert?

Jürgen S. schrieb:
> Frag einfach den Administrator des Servers, ob er Dir einen Telnet (eher
> unsicher) oder einen SSH-Zugang zum Rechner einrichtet, und zwar einen,
> bei dem User-Crontabellen nicht gesperrt sind.

Das scheint hier ein lokal herumstehendes NAS zu sein:

Frank schrieb:
> Muss ich mich wohl doch mit dem Qnap auseinandersetzen.

Also ist Frank sich selbst sein Administrator.
#2911437
Lesenswert?

Rufus Τ. Firefly schrieb:
> Das scheint hier ein lokal herumstehendes NAS zu sein:
>
> Frank schrieb:
>> Muss ich mich wohl doch mit dem Qnap auseinandersetzen.
>
> Also ist Frank sich selbst sein Administrator.

OH! MEIN! GOTT!

Einmal googeln wirft aus:
http://wiki.qnap.com/wiki/Add_items_to_crontab

Dann müßte er jetzt wohl tatsächlich nur noch erklärt bekommen:
- wie er Putty herunterlädt
- wie er mit Putty eine Telnet-Verbindung zum Qnap aufbaut
- wie er den Crontab-Editor von der Putty-Konsole aus startet
- was er in seiner Crontabelle als Zeile einträgt
- und wie er da mit "Speichern und Ende" wieder rauskommt.
Gast #2911536
Lesenswert?

Jürgen S. schrieb:

> Dann müßte er jetzt wohl tatsächlich nur noch erklärt bekommen:
> - wie er Putty herunterlädt
> - wie er mit Putty eine Telnet-Verbindung zum Qnap aufbaut
> - wie er den Crontab-Editor von der Putty-Konsole aus startet
> - was er in seiner Crontabelle als Zeile einträgt
> - und wie er da mit "Speichern und Ende" wieder rauskommt.

Mähhh!

Natürlich bekomme ich das hin, aber wenn es bequemer ginge, wärs wohl 
auch nicht verkehrt. Und man fragt sich doch zurecht, wieso eigentlich 
nicht?

Du startest doch dein Auto auch durch Drehen am Schlüssel oder Drücken 
auf "start engine" und nicht durch Anschieben und Aufspringen, oder?
Persönliche Seite #2911540
Lesenswert?

Frank schrieb:
> Mähhh!
>
> Natürlich bekomme ich das hin, aber wenn es bequemer ginge, wärs wohl
> auch nicht verkehrt.

Dann darfst Du keine linuxbasierten Produkte, sondern nur so etwas wie 
den "Microsoft Home Server" oder ähnliches verwenden.

Ist so. Die Bedienphilosophie ist bei linuxbasierten Produkten halt 
sehr, äh, "effizienzorientiert". Effizienz seitens des Entwicklers, 
nicht des Nutzers.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren