Jump to content
View in the app

A better way to browse. Learn more.

Froxlor Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ausf?hrungszeitpunkt der Cronjobs festlegen

Featured Replies

Hallo,

 

ich w?rde gerne erreichen, dass die Cronjobs unter Froxlor wie bspw. der Backup Cronjob zu einer bestimmten Uhrzeit ausgef?hrt werden.

Kann mir netterweise jemand einen Tipp geben, wie ich das anstelle?

 

Besten Dank im Voraus!

 

Gru?

Gunther

Manuell den Timestamp der letzten Ausf?hrung in der Datenbank anpassen :)

  • Author

Besten Dank! :D

 

Und "Frohe Ostern!"

 

Gru?

Gunther

  • Author

Hallo,

 

ich nochmal ...!

Das Setzen der entsprechenden Timestamps in der DB ist ja soweit kein Problem, allerdings habe ich jetzt immer den Fall, dass mir der Cron Daemon mailt:"There is already a Cronjob in progress. Exiting..."

 

In welcher Reihenfolge und/ oder mit welchem min. Zeitabstand starte ich denn die einzelnen Cronjobs am besten?

Laufen m?ssen alle au?er den beiden APS Jobs und die Intervalle sind unver?ndert.

 

Besten Dank im Voraus!

 

Gru?

Gunther

 

PS: ?rger macht immer der froxlor_cron_traffic ...!

der Fehler kommt wenn vom Master-Cronjob, der das Starten der Cronjobs managed. Der sollte laut default config alle 5 Minuten aufgerufen werden, logischerweise sollte also kein Cron einen Intervall von unter 5 Minuten haben, sonst verrennt er sich in eben diesen Fehler. 

  • Author

Guten Morgen,

 

und besten Dank f?r deine schnelle Antwort.

 

der Fehler kommt wenn vom Master-Cronjob, der das Starten der Cronjobs managed. Der sollte laut default config alle 5 Minuten aufgerufen werden, logischerweise sollte also kein Cron einen Intervall von unter 5 Minuten haben, sonst verrennt er sich in eben diesen Fehler. 

 

Der Master-Cronjob hat bei mir auch das Standard-Interval von 5 Minuten und es gibt keinen anderen Cronjob mit einem k?rzeren Intervall. Ich habe bereits ausprobiert das, den jeweils letzten Ausf?hrungszeitpunkt der einzelnen Jobs zeitlich versetzt zu setzen, genauso wie alle auf denselben Zeitpunkt.

 

Ergebnis ist in beiden F?llen gleich: Es bleibt immer die /var/run/froxlor_cron_traffic.lock, die dann beim n?chsten Start des Master-Cronjobs besagten Fehler samt Benachrihtigung produziert.

 

EIne Idee?

hm, hast du denn sehr viele Kunden oder sehr viele Domains die da jedes mal verarbeitet werden m?ssen?

  • Author

Nein, eben nicht. Bisher ist der Server eher noch "leer".

16 Kunden, aber nur bei zweien ?berhaupt wirklicher Inhalt (Web) und 3 Mail-Accounts.

oh ja...hm, wie gro? sind so die access.log von den 16 kunden? wenn es am traffic cron liegt, muss es was damit zu tun haben.

Schau mal nach, ob dir evtl. die PHP extension pcntl installiert hast, damit kann Froxlor den traffic cron in einem eigenen Prozess forken und diesen Fehler umgehen.

  • Author

Bis auf eine, die knapp 28 MB gro? ist, sind alle anderen "unbedenklich" klein. Verwende auch Logrotate.

 

Zu deiner Empfehlung mit der pcntl ist das erste was ich dazu gefunden habe:"Process Control should not be enabled within a web server environment and unexpected results may happen if any Process Control functions are used within a web server environment."

 

Von daher w?re es mir lieber, wenn sich das Problem auch anders l?sen lassen w?rde ...! ;)

naja, du nutzt die funktion ja nicht im webinterface sondern nur auf der shell...f?r die apache2-php.ini kannstes ja verbieten so lange die cli das darf

  • Author

So, musste jetzt erstmal nachgucken.

Also ich habe (u.a.) das Paket

php5-cli                            5.3.23-1~dotdeb.0

installiert. Soweit ich wei?, beinhaltet das doch die pcntl.

 

Auszug von debian.org dazu:

Kommandozeilen-Interpreter f?r die Skriptsprache PHP5

Dieses Paket stellt den Kommandozeilen-Interpreter /usr/bin/php5 zur Verf?gung, der f?r das Testen von PHP-Skripten in einer Shell oder auch f?r die Erledigung von Shell-Skripting-Aufgaben verwendet werden kann. Die folgenden Erweiterungen sind integriert: bcmath, bz2, calendar, Core,

 ctype, date, dba, dom, ereg, exif, fileinfo, filter, ftp, gettext, hash, iconv, json, libxml, mbstring, mhash, openssl, pcntl, pcre, Phar, posix, Reflection, session, shmop, SimpleXML, soap, sockets, SPL, standard, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xml, xmlreader, xmlwriter, zip und zlib.

Muss ich denn ansonsten noch irgendetwas "machen", oder benutzt Froxlor die automatisch, wenn vorhanden?

Brauchst nichts einstellen, froxlor verwendet das, wenn es verf?gbar ist automatisch

  • Author

Brauchst nichts einstellen, froxlor verwendet das, wenn es verf?gbar ist automatisch

 

OK, dann sind wir wieder am Ausgangspunkt ... :P

Kann ich eigentlich irgendwo sehen, ob der Traffic Cronjob irgendwo ein "Problem" hat?

 

In der Lock Datei steht au?er der Nummer sonst nie etwas anderes drin und auch in der cron.log findet sich ja nur der Eintrag, dass der Master Cronjob gestartet wurde.

Settings -> System settings -> Cronscript debugging (da steht auch nochma genau dran, was das bedeutet)

  • Author

Ja, danke - h?tte ich auch selber drauf kommen k?nnen ...!

 

froxlor_froxlor_master_cronjob.lock-11705:

Setting Lockfile to /var/run/froxlor_froxlor_master_cronjob.lock-11705
Setting Froxlor installation path to /var/www/froxlor
Userdatas included
Table definitions included
Database Class has been loaded
Database-connection established
Froxlor settings have been loaded from the database
Checking froxlor file permissionsFroxlor version and database version are correct
Logger has been included
  cron_tasks: Searching for tasks to do
Cronfiles have been included
Closing database connection
 

und

 

froxlor_cron_traffic.lock:

11710

 

Problem scheint mir eher darin zu liegen, dass die froxlor_cron_traffic.lock im Anschluss nicht gel?scht wird, oder zumindest nicht immer, was dann sp?testens beim n?chsten Start des Traffic Cronjobs zu dem besagten Problem f?hrt.

Naja das wurde ja jetzt durch das debug Flag nicht gel?scht... Schau mal ob es gel?scht wird wenn das nicht an ist (btw der traffic cron sollte nur 1x am Tag laufen, der Verbrauch wird sonst mehrfach berechnet)

  • Author

Naja das wurde ja jetzt durch das debug Flag nicht gel?scht... Schau mal ob es gel?scht wird wenn das nicht an ist (btw der traffic cron sollte nur 1x am Tag laufen, der Verbrauch wird sonst mehrfach berechnet)

 

Schon klar, dass sie dieses Mal aufgrund der Debugging Einstellung nicht gel?scht wurde. Aber wurde sie vorher (ohne Debugging) eben auch nicht (bisher beide Male, wo der Job regul?r ausgef?hrt werden sollte).

Und ja, der Traffic Cronjob l?uft normalerweise bei mir 1x am Tag.

  • Author

Ach, mir kommt da gerade so eine Idee ...!

 

Kann es sein, dass im Anschluss an die Traffic-Berechnung auch der Traffic-Report ausgef?hrt werden muss und dieser die Lock-Datei l?scht?

  • Author

Hmm ..., woran k?nnte es denn dann liegen, dass die .lock nicht gel?scht wird?

kann ich so nicht sagen, eventuell musst du da selbst die cronscripts mal durch-debuggen, ich treffe leider nicht auf diesen Fehler und kann es nicht reproduzieren

  • Author

Hallo!

 

Ich bin, so glaube ich zumindest, ein St?ckchen schlauer ...

 

Vorweg: Kannst du, oder jemand anders, mal bitte gucken, ob die Datei 'froxlor_cron_traffic.lock' in /var/run bei dir/ ihm auch grunds?tzlich nicht gel?scht wird, also immer vorhanden ist und nur bei jeder Ausf?hrung des entsprechenden Cronjobs der Zeitstempel aktualisiert wird?

 

Diese Datei ist aber nicht, wie ich zuerst irrt?mlich angenommen habe, der Grund f?r die Benachrichtigung per E-Mail "There is already a Cronjob in progress. Exiting...".

 

Sondern es ist der Backup Cronjob, der selbst bei relativ geringer Belegung des Speicherplatzes nicht in 5 Minuten fertig ist.

 

Nun ist es nat?rlich zumindest "?u?erst l?stig", wenn man t?glich mind. einmal eine entsprechende Mail vom Daemon erh?lt. Kann man da irgendwie "Abhilfe" schaffen?

 

Gru?

Gunther

  • Author

Hi!

 

Vorweg: Kannst du, oder jemand anders, mal bitte gucken, ob die Datei 'froxlor_cron_traffic.lock' in /var/run bei dir/ ihm auch grunds?tzlich nicht gel?scht wird, also immer vorhanden ist und nur bei jeder Ausf?hrung des entsprechenden Cronjobs der Zeitstempel aktualisiert wird?

 

Die Lock Datei des Traffic Cronjobs wird nicht gel?scht, weil es schlicht keinen Befehl daf?r gibt in der Datei 'cron_traffic.php'.

Folgende Erg?nzung am Ende der Datei "l?st" das Problem:

Original:

if(function_exists('pcntl_fork')) {
	die();
}

Neu:

if(function_exists('pcntl_fork')) {
	unlink($TrafficLock);
	die();
}

Im Endeffekt ist es reine "Kosmetik", da das Vorhandensein der Datei 'froxlor_cron_traffic.lock' keinerlei Auswirkungen hat (wenn der (die) entsprechende(n) Prozess(e) beendet ist (sind)).

 

Gru?

Gunther

Netsurfer hat Recht, da wurde wohl beim Forken nicht mehr dran gedacht, dass das Lockfile auch wieder weg muss. Danke, wird sofort eingespielt

 

EDIT: Doch nicht korrekt, sorry. Die urspr?ngliche Fehlermeldung vom OP war "There is already a Cronjob in progress. Exiting..." - diese kommt NICHT vom Traffic-Cron und hat auch nichts mit dessen Lock-File zu tun, das kommt direkt vom Master-Cronjob, und die Pr?fung wird in der lib/cron_init.php ausgef?hrt und das Lockfile in lib/cron_shutdown.php wieder gel?scht.

Edited by d00p

Archived

This topic is now archived and is closed to further replies.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.