Cronjob per PHP ergänzen

Ah, ich glaub ich verstehe es langsam :)

Um ein cronjob zu ergänzen, muss ich also ein
shell-programm schreiben, das dann halt die
entsprechenden daten beinhaltet?
 
Das Wort ergänzen ist glaube ich ziemlich das falsche. Erstellen würde ich sagen :)
Die Liste der Crontabs ergänzen.

Warum ein Shell-Programm? Du brauchst nur ein Programm welches Webseiten aufrufen kann. Egal wie Primitiv. Da empfiehlt sich http://de.wikipedia.org/wiki/Lynx_(Browser)

Beispielaufruf:
Code:
lynx --dump http://deineseite.de/deinedatei.php > /dev/null 2>&1

Dabei wird in dem von dir angegebenen Zeitmuster der genannte Befehl ausgeführt und das Ergebnis in den "Mülleimer" umgeleitet. Mit dem Ergebnis kannst du natürlich machen was du willst...

lg
 
warte, jetzt komm ich nicht mehr mit, also, der cronjob
soll per script erstellt werdne, ich dachte da so etwa:

user gibt daten ein -> php verwertet daten ->shell script wird erstellt -> php ruft shell script auf -> shell script erweitert die liste -> php löscht shell script -> fertig

welchen zweck hätte hier der lynx browser?
 
Und ich verzweifel... Mein letzter Post!
Falls du das immernoch nicht verstehst musst du wohl den Thread nochmal von vorne lesen oder auf Hilfe von wem anders warten - sorry :)

Dieser Cron ist ein Daemon. Dieser Daemon kann also sich wiederholende Aufgaben erledigen, das hatten wir geklärt oder? Nehmen wir doch das beispiel Archivierung.

Angenommen du willst einen Ordner alle 15min zu einem Archiv packen. Dann kannst du entweder immer 15min warten und dann den Befehl zum packen des Ordners erneut absenden oder du lässt das von dem netten Daemon erledigen.
Dazu muss er natürlich wissen was machen muss - und vorallem wann. Dazu gibt es die schon angesprochene Datei. In dieser Datei stehen alle Aufgaben die regelmäßig erledigt werden müssen - natürlich nicht alle zur selben Zeit. Daher gibt man (wie im Wikipedia-Artikel beschrieben) so einen Zeit-Code mit wann welcher Befehl ausgeführt werden soll. Bei dem Archivieren-Beispiel nun alle 15min.

Nun guckt der Daemon jede Minute in diese Datei und prüft ob irgend einer der angegebenen Zeit-Codes zur aktuellen Minute passt. Wenn das der Fall ist wird der Befehl der zu diesem Code gespeichert ist ausgeführt. Also dein Archiv würde mit dem selben Befehl erstellt wie vorher auch auf der Konsole per Hand - logisch?!

Nun willst du aber keine Archive packen sondern einfach nur eine PHP-Script ausführen. Wie führt man ein PHP-Script aus? Richtig, man ruft die Adresse dort hin im Browser auf.
Nun brauchen wir dafür kein Firefox, Opera oder Microschrott sondern den einfachsten Browser den wir finden können (denn das Ergebnis was der Browser anzeigt guckt sich ja eh niemand an und kann verworfen werden - es geht schließlich nur um den Aufruf des Script und was es erledigt - nicht was visuell dabei rum kommt, richtig?.

Also nehemen wir den Browser Lynx - oder irgend einen anderen - theoretisch (und praktisch) scheiss egal! Hauptsache er kann eine Anfrage an eine übergebene Adresse stellen. Damit dieser gute Browser weiß welche Seite er aufrufen soll geben wir ihm das ganze als Parameter mit. Und hier nochmal der Befehl:
Code:
lynx --dump http://deineseite.de/deinedatei.php > /dev/null 2>&1

Da das ganze ein Textbasierter Browser ist würde er das Ergebnis auf der Standardausgabe liefern - weil uns aber (wie schon gesagt) das Ergebnis nicht interessiert leiten wir das Ergebnis (also den Inhalt der aufgerufenen Seite) nach /dev/null um. Was genau das ist kannst du im Internet nachlesen... Sieh es einfach als Gerät was alles entgegen nimmt und damit einfach garnichts macht - sprich: Wir jagen die Daten ins Nirvana.

Wenn du es jetzt immernoch nicht verstanden hast stellst du dir unter dem Cron etwas ganz anderes vor oder ....

EDIT:
Von was für einem Shell-Script redest du auf einmal?
Und welche Liste soll erweitert werden? Falls du die Cron-Liste meinst.... die erweiterst Du - und zwar nur ein mal - und das mit der Hand! Dazu nimmst du entweder einen Editor oder eine andere Schnittstelle die dir dahin zur Verfügung steht (da ich nicht weiß ob du auf einem Root-Server oder lokal oder was weiß ich wie arbeitest kann ich dir das nicht sagen)


lg
 
Zuletzt bearbeitet:
Und ich verzweifel... Mein letzter Post!
Falls du das immernoch nicht verstehst musst du wohl den Thread nochmal von vorne lesen oder auf Hilfe von wem anders warten - sorry :)

Dieser Cron ist ein Daemon. Dieser Daemon kann also sich wiederholende Aufgaben erledigen, das hatten wir geklärt oder? Nehmen wir doch das beispiel Archivierung.

Angenommen du willst einen Ordner alle 15min zu einem Archiv packen. Dann kannst du entweder immer 15min warten und dann den Befehl zum packen des Ordners erneut absenden oder du lässt das von dem netten Daemon erledigen.
Dazu muss er natürlich wissen was machen muss - und vorallem wann. Dazu gibt es die schon angesprochene Datei. In dieser Datei stehen alle Aufgaben die regelmäßig erledigt werden müssen - natürlich nicht alle zur selben Zeit. Daher gibt man (wie im Wikipedia-Artikel beschrieben) so einen Zeit-Code mit wann welcher Befehl ausgeführt werden soll. Bei dem Archivieren-Beispiel nun alle 15min.

Nun guckt der Daemon jede Minute in diese Datei und prüft ob irgend einer der angegebenen Zeit-Codes zur aktuellen Minute passt. Wenn das der Fall ist wird der Befehl der zu diesem Code gespeichert ist ausgeführt. Also dein Archiv würde mit dem selben Befehl erstellt wie vorher auch auf der Konsole per Hand - logisch?!

Nun willst du aber keine Archive packen sondern einfach nur eine PHP-Script ausführen. Wie führt man ein PHP-Script aus? Richtig, man ruft die Adresse dort hin im Browser auf.
Nun brauchen wir dafür kein Firefox, Opera oder Microschrott sondern den einfachsten Browser den wir finden können (denn das Ergebnis was der Browser anzeigt guckt sich ja eh niemand an und kann verworfen werden - es geht schließlich nur um den Aufruf des Script und was es erledigt - nicht was visuell dabei rum kommt, richtig?.

Also nehemen wir den Browser Lynx - oder irgend einen anderen - theoretisch (und praktisch) scheiss egal! Hauptsache er kann eine Anfrage an eine übergebene Adresse stellen. Damit dieser gute Browser weiß welche Seite er aufrufen soll geben wir ihm das ganze als Parameter mit. Und hier nochmal der Befehl:
Code:
lynx --dump http://deineseite.de/deinedatei.php > /dev/null 2>&1

Da das ganze ein Textbasierter Browser ist würde er das Ergebnis auf der Standardausgabe liefern - weil uns aber (wie schon gesagt) das Ergebnis nicht interessiert leiten wir das Ergebnis (also den Inhalt der aufgerufenen Seite) nach /dev/null um. Was genau das ist kannst du im Internet nachlesen... Sieh es einfach als Gerät was alles entgegen nimmt und damit einfach garnichts macht - sprich: Wir jagen die Daten ins Nirvana.

Wenn du es jetzt immernoch nicht verstanden hast stellst du dir unter dem Cron etwas ganz anderes vor oder ....

EDIT:
Von was für einem Shell-Script redest du auf einmal?

lg

So, soweit hab ichs verstanden :) ich hoffe du bist noch nicht auf dem Fenster gesprungen ;)

also, ich rede davon, wie man es macht, das nun der Befehl unserem netten Daemon
zum futtern gegeben wird :), und das ganze möchte per PHP machen, wenn du verstehst
was ich meine ;)

Zu deinem Edit:

ich hab nen Root-Server ;),
und welche Schnittstellen gibts es denn alle?
 
Zuletzt bearbeitet:
Ich dachte du willst ein PHP-Script regelmäßig ausführen lassen und nicht eins schreiben was es dir ermöglicht neue Befehle in die Crontab-Datei zu schreiben?

Und nein, ich verstehe nicht was du meinst.
Am besten erklärst du mal genau was du machen willst. Also als Ergebnis haben willst... Denn so werde ich da nicht sonderlich schlau draus.

lg
 
Du kennst ja Confixx.

Ich möchte gerne wissen, wie die Seite zum Ergänzen
der Cronjobs aufgebaut ist, also über welche Schnittstelle
und wie genau die Cronjobs ergänzt werden


P.S.: Hät fast die 2te Seite übersehn omg
 
Mal davon ab das wir total aneinander vorbei geredet haben.
Ich packe in den Anhang mal einen Screenshot.

Oder hast du das Problem mittlerweile gelöst?!

lg
 

Anhänge

  • crontabs.jpg
    crontabs.jpg
    22,6 KB · Aufrufe: 29
Es ist immer der Selbe Mist. Die Frage war eigentlich von Anfang an ganz klar und man muss schon ganz schön DAU sein um das nicht zu begreifen.
Der OP möchte ein Php-Script haben mit dem er einfach Cronjobs erstellen und bearbeiten kann.
Völlig klar und oft gesucht denn man will unbedarften Users ermöglichen Cron-Jobs zu erstellen.
Da die meisten natürlich nichts anders kennen als den Kram nur zu nutzen, wenn es geht noch über den Confixx-Müll verstehen Sie die Frage nicht.
Also ich habe jetzt kein Script bei der Hand, mache aber demnächst eins.
Du must natürlich schön aufpassen wie Du das PHP-Script sicherst und dieses Script am besten nur vorgefertigte Jobs ausführen lassen, z.B. erstellen von Playlists auf einem Stream Server. Denn wenn ein User erst mal ein Werkzeug zum Cron hat und damit was anderes ausführen kann dann hast Du ein Problem weil er Dir ggf. den Server weg nimmt. Also der Job sollte schon definiert sein und der User kann ihn nur noch ändern, z.B. andere Playlist zu anderer Zeit.
 
Zurück