mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 14:01 Benutzername: Passwort: Auto-Login

Thema: PHP > Shell Comands (CronJob) vom 13.06.2004


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP > Shell Comands (CronJob)
Seite: 1, 2  Weiter
Autor Nachricht
GrandD
Threadersteller

Dabei seit: 13.06.2004
Ort: -
Alter: -
Geschlecht: -
Verfasst So 13.06.2004 10:15
Titel

PHP > Shell Comands (CronJob)

Antworten mit Zitat Zum Seitenanfang

Hallo Leute,

ich möchte gerne ein Webinterface mit PHPund MySQL Coden mit dem ich CronJobs auf meinem Root Server (Debian Woody) anlegen, editieren und löschen kann.

Also es sollte doch möglich sein die Daten für den Cronjob aus einer MySQL Datenbank auslesen zu lassen und in die Crontab zu bringen die sie dann ausführt, nur wie *g*.

Soviel ich weiss sollte der Befehl exec() das können nur ist mir nciht ganz klar wie ich die Daten aus der MySQL in die Crontab bringe.

Ich Hab mit das so vorgestellt das die Daten alle 5 Minuten durch einen CronJob aus der Datenbank in die Crontab geschrieben werden nur muss die Crontab anschliessende gelöscht werden oder werden die Jobs nach ausführung automatisch aus der Crontab gelöscht?

Soviel mal zu meinem Anliegen, vielleicht kann mri wer helfen, wäre sehr dankbar!

Grand *zwinker*
  View user's profile Private Nachricht senden
el Zeratulo

Dabei seit: 04.04.2002
Ort: Bent Badheim
Alter: -
Geschlecht: Männlich
Verfasst So 13.06.2004 11:01
Titel

Antworten mit Zitat Zum Seitenanfang

schau mal bei sourceforge, sowas gibt es meines wissens nach schon in etlichen ausführungen...
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
GrandD
Threadersteller

Dabei seit: 13.06.2004
Ort: -
Alter: -
Geschlecht: -
Verfasst So 13.06.2004 11:05
Titel

Antworten mit Zitat Zum Seitenanfang

el Zeratulo hat geschrieben:
schau mal bei sourceforge, sowas gibt es meines wissens nach schon in etlichen ausführungen...


Vielen Danke für deine Antwort!

War schon dort hab aber nix gefunden, es gibts zwar ein bis zwei Scripts aber die laufen ohnen MySQL und sind Fake Cron Scripts, die arbeiten als PHP Script das ohne Cron rennt.

Kann auch sein das ich was übersehen habe, aber es gibt auch kein solches Script in den diversen Script Archiven im Netz, und auch Google hat nicht wirklich was ausgespuckt mit dem ich was anfangen kann.

Wenn du vielleicht einen link hättest für mich wenn du sowas schon mal gesehen hast?

Lächel Bin dankbar für jeden hinweis.
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Mo 14.06.2004 10:37
Titel

Antworten mit Zitat Zum Seitenanfang

Also eigentlich kein Problem. Wie Du Befehle an die Shell gibst, weißt Du ja. Je nachdem, was Du an Rückgabe brauchst, kannst Du auch mit shell_exec(), system(), fpassthru() arbeiten. (Im Safe-Mode sollte das allerdings nicht funktionieren)
Ich weiß jetzt aber nicht so genau, wo Du nicht weiterkommst...

Das erste Problem werden jetzt die gesetzten Rechte sein. Ist der Webserveruser in der Gruppe nobody, dann wird er kein cron ausführen dürfen. Aber vermutlich willst Du sowas ohnehin nur lokal für dich selber nutzen?
So ein Script kann u.U. ein gewaltiges Sicherheitsrisiko darstellen. Du solltest dir also vorher genau überlegen, wer nachher was machen darf, bevor du anfängst.
Tja und dann kannst Du eigentlich ganz normal arbeiten, wie Du das auch normal in eine Shell tippen würdest. Du kannst auch Pipes verwenden.
Ich weiß jetzt allerdings nicht, in welcher Form die Daten in der MySQL-Datenbank stehen...
Aber prinzipiell: Einfache Abfrage machen und Daten rausholen. Hieran sollte das doch nicht liegen, oder?

Hier findest du Infos über cron, falls Du daran hängst: http://www.selflinux.org/selflinux/html/cron.html
Ansonsten hilft "man cron" und "man crontab".
  View user's profile Private Nachricht senden
eViLaSh

Dabei seit: 22.05.2003
Ort: Texas
Alter: 40
Geschlecht: Männlich
Verfasst Fr 18.06.2004 08:28
Titel

Antworten mit Zitat Zum Seitenanfang

cronjbs bleiben nach meinen erkenntnissen in der crontab drinnen...da werden sie dann nach den jeweiligen angaben immer wieder ausgeführt...
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
GrandD
Threadersteller

Dabei seit: 13.06.2004
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 18.06.2004 09:09
Titel

Antworten mit Zitat Zum Seitenanfang

Danke für die Antworten!

@rob:

Mir ist klar welche php Funktion ich verwenden muss also exec(), aber mir ist nicht klar wie das dann ausschaut bin eher newbiecoder.

Ein Beispiel:

ich habe ne tabelle mit allen Userdaten und ein Tabelle mit den eingetragenen Crondaten die in der Form in der Tabelle stehen wie sie in die Crontab müssen.
Wie sollte das dann aussehen damit die daten ausgelesen werden und dann in die Crontab geschrieben werden oder in eine .txt die dann per crontab -e /.txt ausgeführt wird?
Kannst du vielleicht mal ein Beispielscript Posten?
Wäre sehr Hilfreich, Danke!

@eViLaSh:
Was bedeutet das wenn ich das Script das immer alle Cronjobs aus der Tabelle holt nicht immer alle Cronjobs in die Crontab schreiben darf da ich sonst doppeleinträge habe?
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Fr 18.06.2004 10:47
Titel

Antworten mit Zitat Zum Seitenanfang

Also wenn ich das richtig verstanden habe, dann liegt das Problem jetzt darin, daß Du nicht weißt, wie Du die Daten aus der Tabelle in eine Datei bekommst, die Du crontab vorwerfen kannst?

Code:

// Hier erstmal Verbindung zu Server und Datenbank herstellen


$sql = "SELECT feldname FROM crondaten";   // evtl. noch WHERE-Abfrage mit einbauen, um nur bestimmte Daten aus der Tabelle zu holen
$res = mysql_query( $sql );
$data = mysql_fetch_assoc( $res );

$fp = fopen( "crondata.txt", "w"); // Datei zum Schreiben öffnen
fwrite( $fp, $data['feldname'] );   // Datensatz in Datei schreiben
fclose( $fp );   // Datei schliessen


// und jetzt evtl. die Daten aus der Tabelle löschen, damit diese das nächste Mal nicht mehr ins Textfile geschrieben werden
$sql = "DELETE FROM crondaten";   // evtl. noch WHERE-Abfrage mit einbauen, um nur bestimmte Daten aus der Tabelle zu löschen
$res = mysql_query( $sql );
mysql_close();   // Verbindung zur Datenbank schliessen

  View user's profile Private Nachricht senden
GrandD
Threadersteller

Dabei seit: 13.06.2004
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 18.06.2004 14:54
Titel

Antworten mit Zitat Zum Seitenanfang

Lächel

Ne falsch verstanden, ich meinte wie ich das Textfile dann in nem Script der Crontab dem Frass vorwerfe. Grins

Sagen wir mal ich habe nun alle Daten in eine .txt gespeichert wie bringe ich die jetzt in die Crontab, hab mich vielleicht schlecht ausgedrückt oben sorry.

Das mit der .txt is nur so eine Idee gewesen von mir lieber wär mir natürlich das geht anders also direkt aus der DB aber dazu hatte ich keine Idee also kam ich auf die .txt.

Ich bräuchte ein beispiel für ein Script das die Daten aus der DB oder aus einer .txt nun in die Crontab schreibt spitze wäre wenn das script die Crontab gleich scannt und doppelte Einträge gleich weglassen würde wegen Doppel Einträge, vieleicht geht das aber auch beim auslesen der DB das der immernur die neu angelegten verwendet weil das script soll ja die TXT oder DB alle 10 minuten auf neue Einträge absuchen und die sollen ja auch noch Editiert werden können.

*g* ich weiss das is schon fast unverschämt aber ich stehe da total auf der Leitung und komm einfach nicht weiter.

Danke jedenfalls für deine Hilfe *Thumbs up!*
  View user's profile Private Nachricht senden
 
Ähnliche Themen Cronjob einrichten
Cronjob erstellen
[cronjob] selbstaufrufende PHP-Datei
PHP-Script zeitgesteuert aufrufen (ohne Cronjob)
Shell: Ordnerüberwachung
[shell] backup script
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.