Cronjobs von MySQL Datenbank auslesen
Cronjobs von MySQL Datenbank auslesen
Hi,
ich habe Server, der recht viele Cronjobs zu bearbeiten hat. Diese Jobs werden außerdem relativ häufig geändert und daher ist das editieren der crontab recht umständlich, außerdem ist das sehr schlecht über PHP zu administrieren. Weiß jemand ob es ein Modul für Cron gibt, mit der man die einzelnen Jobs aus einer MySQL Datenbank auslesen kann, bzw. ob es ein vergleichbares Programm gibt, dass das kann?
Ich kann natürlich auch ein Script schreiben, das jede Minute geladen wird, aber das ist sehr unschön gelöst (vorallem da die MySQL Verbindungen ja immer neu hergestellt werden müssen).
MfG
Julian
(Edit: Sry bin neu hier, hab gerade gesehen das es ein Forum "Programm gesucht" gibt, hätte ich natürlich da rein gepostet)
ich habe Server, der recht viele Cronjobs zu bearbeiten hat. Diese Jobs werden außerdem relativ häufig geändert und daher ist das editieren der crontab recht umständlich, außerdem ist das sehr schlecht über PHP zu administrieren. Weiß jemand ob es ein Modul für Cron gibt, mit der man die einzelnen Jobs aus einer MySQL Datenbank auslesen kann, bzw. ob es ein vergleichbares Programm gibt, dass das kann?
Ich kann natürlich auch ein Script schreiben, das jede Minute geladen wird, aber das ist sehr unschön gelöst (vorallem da die MySQL Verbindungen ja immer neu hergestellt werden müssen).
MfG
Julian
(Edit: Sry bin neu hier, hab gerade gesehen das es ein Forum "Programm gesucht" gibt, hätte ich natürlich da rein gepostet)
Also, bekannt ist mir da nichts, auf die Schnelle find ich da auch bei Google und Freshmeat nix.
Ein eigenes Skript, das die Jobs periodisch ausliest und daraus die crontab erzeugt ist sicher auch ok. Du musst ja nicht jede Minute die Datenbank abfragen, ob etwas neu ist.
Das reicht auch in nem groesseren Zeitabstand. Das mit der Mysql-Verbindung neu herstellen sollte eigentlich nicht so tragisch sein.
Ein eigenes Skript, das die Jobs periodisch ausliest und daraus die crontab erzeugt ist sicher auch ok. Du musst ja nicht jede Minute die Datenbank abfragen, ob etwas neu ist.
Das reicht auch in nem groesseren Zeitabstand. Das mit der Mysql-Verbindung neu herstellen sollte eigentlich nicht so tragisch sein.
möglicherweise ist das was für dich:
http://rubyforge.org/tracker/index.php? ... &atid=4133
Damit kannst, wenn die Beschreibung stimmt eine SQl-Datenbank als Dateisystem Mounten und Abfragen machen. Damit sollte es auch möglich sein Scripte aus der Datenbank aus zu lesen und zu starten.
Dazu wird aber fuse (filesystem in userspace) und ruby (sammt fusemodul) gebraucht.
Ich habe es jetzt nicht ausprobiert. Aber vielleicht hilft es dir.
http://rubyforge.org/tracker/index.php? ... &atid=4133
Damit kannst, wenn die Beschreibung stimmt eine SQl-Datenbank als Dateisystem Mounten und Abfragen machen. Damit sollte es auch möglich sein Scripte aus der Datenbank aus zu lesen und zu starten.
Dazu wird aber fuse (filesystem in userspace) und ruby (sammt fusemodul) gebraucht.
Ich habe es jetzt nicht ausprobiert. Aber vielleicht hilft es dir.
Jo stimmt wohl, dann wirds kein Problem mit den MySQL Verbindungen sein. Werd mir das nochmal durch Kopf gehen lassennepos hat geschrieben: Das reicht auch in nem groesseren Zeitabstand. Das mit der Mysql-Verbindung neu herstellen sollte eigentlich nicht so tragisch sein.
finde die Lösung hört sich sehr Interessant an, werd mich mal genauer drüber informieren und mal schauen wie sich das realisieren lässt, oder ob sich der Aufwand nicht lohnt.ToPeG hat geschrieben: Damit kannst, wenn die Beschreibung stimmt eine SQl-Datenbank als Dateisystem Mounten und Abfragen machen. Damit sollte es auch möglich sein Scripte aus der Datenbank aus zu lesen und zu starten.
Mfg
Julian
So, nach einer kleinen Pause wegen zeitlichen Problemen hab ich mich mal wieder der Aufgabe gewidmet
Kleiner Zwischenstand:
Kleiner Zwischenstand:
Also ich hab jetzt Ruby 1.8 und Fuse 2.5 installiert. Leider gabts Probleme beim installieren des Fusemoduls, sodass ich leider an der Stelle hängengeblieben bin... Ich hab mal in deren Forum um Hilfe gebeten und hoffe, dass ich dort möglichst bald eine Antwort bekomme. Werde mich melden wenns was neues gibtToPeG hat geschrieben:möglicherweise ist das was für dich:
http://rubyforge.org/tracker/index.php? ... &atid=4133
[...]
Dazu wird aber fuse (filesystem in userspace) und ruby (sammt fusemodul) gebraucht.
Ab dem 2.6.14 Linuxkernel ist fuse als Modul dabei und muss nurnoch mit "modprobe fuse" geladen werden (oder in /etc/modules eintragen)
Davor muß man sich die Souchen apt-geten und das Paket dann installieren. (der Rest ist gleich.)
Bei mir hat das kompilieren hin und wieder Probleme bereitet. (Wenn mal wieder eine neue Version von fuse da war.)
Ich benutze es bei mir für "CryptFS".
...um meine Prornosammlung zu schützen
Davor muß man sich die Souchen apt-geten und das Paket dann installieren. (der Rest ist gleich.)
Bei mir hat das kompilieren hin und wieder Probleme bereitet. (Wenn mal wieder eine neue Version von fuse da war.)
Ich benutze es bei mir für "CryptFS".
...um meine Prornosammlung zu schützen
@niemand
Das Problem ist das ständige auf- und abbauen der Datenbankverbindung. Wenn das, wie von julian_st gewünscht, häufig (heißt für mich <2 min) passiert, dann kann es zu Problemen kommen, da z.B. nach jeder beendeten Verbinung ein refresch der Datenbank durchführt werden muß. Bei größeren Datenbanken (mehr ale 10.000 Datensätze) wird die Datenbank dadurch insgesammt merklich langsamer und kann sich mitunter auch "seltsam" verhalten. (Sponates benden der Verbindung, unvollständige Antworten, etc.)
Das Problem ist das ständige auf- und abbauen der Datenbankverbindung. Wenn das, wie von julian_st gewünscht, häufig (heißt für mich <2 min) passiert, dann kann es zu Problemen kommen, da z.B. nach jeder beendeten Verbinung ein refresch der Datenbank durchführt werden muß. Bei größeren Datenbanken (mehr ale 10.000 Datensätze) wird die Datenbank dadurch insgesammt merklich langsamer und kann sich mitunter auch "seltsam" verhalten. (Sponates benden der Verbindung, unvollständige Antworten, etc.)
Wenn in der entprechenden Datenbank mehr als 10k Sachen zum Abarbeiten liegen, werden die Probleme wohl nicht unbedingt an einem etwas langsamen Verbindungsaufbau liegen
(Zumal der Verbindungsaufbau selbst mit der Größe der DB wenig zu tun hat, allenfalls die Queryzeiten dürften sich verlängern).
cu
(Zumal der Verbindungsaufbau selbst mit der Größe der DB wenig zu tun hat, allenfalls die Queryzeiten dürften sich verlängern).
Wenn das bei deiner Datenbank der Fall ist, solltest du unbedingt deine Konfiguration überprüfen. Sowas darf nicht passieren, schließlich ist es die Aufgabe eines DBMS, größere Mengen an Daten(sätzen) vorzuhalten. Abruch der Verbindung oder unvollständige Antworten deutet auf Fehlkonfiguration hin.Bei größeren Datenbanken (mehr ale 10.000 Datensätze) wird die Datenbank dadurch insgesammt merklich langsamer und kann sich mitunter auch "seltsam" verhalten. (Sponates benden der Verbindung, unvollständige Antworten, etc.)
cu
Bei mir hatte mal ein Script, das sich ständig neu mit der Danbank verband und ein Menge Aktionen machte, diese Wirkung. (es war deutlich zu sehen, daß die Datenbank nicht hinter her kam wenn auch andere Verbindungen standen) Ich muß aber zugeben, daß das jetzt eine Weile her ist. Seitdem bin ich lieber etwas zu vorsichtig mit sowas.
Wenn du sagts, daß das kein Problem mehr ist, glaube ich dir das.
Wenn du sagts, daß das kein Problem mehr ist, glaube ich dir das.