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.
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?
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.
Ein Webserver allein erledigt keine zeitgesteuerte Aktivitäten. Nicht sein Job. Insofern ist es schnuppe wo der Server steht, das Problem bleibt das Gleiche. Irgendwo muss jemand ab und zu was auslösen, und wenns eine automatische Task auf deinem PC ist, die eine bestimmte PHP-Seite vom Webserver aufruft.
Vielleicht sowas hier http://www.cron-job.org/cgi-bin/cronweb der ruft dann deine Seite auf den Webserver auf.
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
Frank schrieb: > Das sieht eigentlich ganz gut aus, aber wie zuverlässig ist das? So zuverlässig wie dein restliches System.
Ansonsten gibt es noch ~/.forward damit lassen sich mails durch scripte jagen.
Jo, aber wo schon cron zu viel Linux ist...
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.
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.
Rufus Τ. Firefly schrieb: > Frank schrieb: >> Muss ich mich wohl doch mit dem Qnap auseinandersetzen. > > Also ist Frank sich selbst sein Administrator. Ja so ist es. Arduino ist übrigens auch eine coole Idee, kenne und benutze das Sytsem für Hardware-Basteleien. Gibts für das Anlegen von Cronjobs keine GUI?
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.
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?
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.
Frank schrieb: > Z.B. Mailabruf und bei bestimmtem Inhalt SMS-Versand per > Sipgate-API. Wenn du das schafft, dann wirst du sicherlich auch das Eintragen eines Cronjobs per vi meistern. Ich bin da sehr zuversichtlich.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.