Die Cronjobs sind dafür da, zu bestimmten Zeiten bzw. in einem bestimmten Intervall bestimmte Aufgaben auszuführen.
Verwaltung der Cronjobs
Sie finden die Cronjob-Verwaltung unter "Einstellungen" > "Systemeinstellungen" > "Cronjobs". Dort können Sie einzelne Cronjobs aktivieren bzw. deaktivieren und ein Passwort setzen, falls dies zum Schutz des Cronjob-Aufrufes gewünscht ist (wird empfohlen). Außerdem wird Ihnen angezeigt, wann der Cronjob das letzte Mal aufgerufen wurde, welches Intervall für den Cronjob-Aufruf empfohlen wird und wie die URL lautet (letztes Icon).
Erklärung der Cronjobs
Abrechnungen
Dieser Cronjob erstellt Rechnungen bei Fälligkeit aktiver Abrechnungen.
Backups
Dieser Cronjob nimmt System-Backups vor.
Domain-Änderungen
Dieser Cronjob wendet offene Änderungen an Domains an.
Domain-Synchronisierung
Dieser Cronjob synchronisiert im System befindliche Domains mit den Daten beim Registrar.
Domain-Verlängerungen
Dieser Cronjob kümmert sich um Verlängerungen und Kündigungen von Domains und warnt den Kunden vor anstehenden Verlängerungen bzw. dem Ablauf seiner Domain.
E-Mailwarteschlange
Dieser Cronjob arbeitet die E-Mailwarteschlange ab.
Geburtstags-Glückwünsche
Dieser Cronjob versendet auf Wunsch Glückwünsche und einen Gutschein, wenn einer Ihrer Kunden Geburtstag hat.
IP-Lokalisierung
Dieser Cronjob versucht, IP-Adressen von Kunden zu lokalisieren. Das ermöglicht es Ihnen, direkt in der Administration zu sehen, woher ein Besucher kommt und dient der Betrugsprävention.
Mahnungen
Dieser Cronjob versendet Mahnungen für überfällige Rechnungen, siehe Mahnsystem.
Produkt-Einrichtungen
Dieser Cronjob richtet vom Kunden bestellte Produkte im Hintergrund ein.
Proxy-Adressen aktualisieren
Dieser Cronjob ruft eine Liste von bekannten Proxy-IP-Adressen ab und speichert diese zwischen. Das ermöglicht es sourceDESK, Proxy-Nutzern bestimmte Funktionen der Webseite zu sperren, um Betrug vorzubeugen.
Server-Monitoring
Dieser Cronjob überwacht die Server im Monitoring.
System-Status
Dieser Cronjob prüft das System auf Fehler, wie zum Beispiel nicht existente Dateien.
Ticket-Import (POP)
Dieser Cronjob importiert neue E-Mails in das Support-System. Dafür ist das mailparse-Modul für PHP zwingend erforderlich.
Überweisungs-Import
Dieser Cronjob versucht Überweisungen von Ihrer Bank zu importieren, sofern der automatische Import aktiviert ist.
Währungs-Kurse
Dieser Cronjob aktualisiert die Kurse der Währungen automatisch, wenn dies aktiviert ist und die Währungs-Codes gültig sind.
Einrichtung der Cronjobs
Sie sollten alle angezeigten Cronjobs in angegebenen Intervall einrichten, zum Beispiel über crontab oder über Ihr Verwaltungsinterface (Linux-Tipp: wget --spider "<URL>"). Über die Administration deaktivierte Cronjobs lassen sich nicht mehr aufrufen, sollten aber trotzdem als Cronjob im Crontab eingetragen sein, damit sie nach der erneuten Aktivierung wieder laufen.
Daemon
Seit Version 1.1.1 reicht es aus, einen Daemon einzurichten, der die Cronjobs automatisch ausführt, wenn diese fällig sind. Alternativ können die Cronjobs auch weiterhin einzeln aufgerufen werden. Der Daemon erfordert das PHP-Modul pthreads. Der Aufruf erfolgt in einer Shell mit:
nohup php /var/www/sourceDESK/index.php cron _all &
Hierbei ist der Pfad zu sourceDESK anzupassen, eventuell muss auch der Pfad für die PHP-Binary geändert werden. Eine Passwort-Authentifizierung ist nicht erforderlich. Der Daemon kann beispielsweise mit systemd verwaltet werden. Hierzu kann eine Datei /etc/systemd/system/sourcedesk.service mit folgendem Inhalt angelegt werden:
Ungültige Sprache.
Die gewünschte Sprache muss wie folgt definiert werden: <source lang="html4strict">...</source>
Unterstützte Sprachen für die Syntaxhervorhebung:
4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, aimms, algol68, apache, applescript, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, caddcl, cadlisp, cfdg, cfm, chaiscript, chapel, cil, clojure, cmake, cobol, coffeescript, cpp, csharp, css, cuesheet, d, dart, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, ezt, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, ispfpanel, j, java, java5, javascript, jcl, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nginx, nimrod, nsis, oberon2, objc, objeck, ocaml, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, pic16, pike, pixelbender, pli, plsql, postgresql, postscript, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, qml, racket, rails, rbs, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, rust, sas, scala, scheme, scilab, scl, sdlbasic, smalltalk, smarty, spark, sparql, sql, standardml, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vbscript, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xpp, yaml, z80, zxbasic
[Unit] Description=sourceDESK Cronjob Requires=mysqld.service After=mysqld.service [Service] User=root Type=simple TimeoutSec=0 PIDFile=/var/run/sourcedesk.pid ExecStart=php -f /var/www/sourceDESK/index.php cron _all> /dev/null 2>/dev/null KillMode=process Restart=on-failure RestartSec=30s [Install] WantedBy=default.target
Die Datei - und jegliche Änderungen - müssen mit systemctl daemon-reload im System bekannt gemacht werden.
Der Dienst kann dann mit systemctl start sourcedesk gestartet werden. Um ihn beim Booten zu starten, muss systemctl enable sourcedesk ausgeführt werden.
Intervall
Wie bereits erwähnt wird das Intervall bei den Cronjobs angezeigt. Dieses Intervall sollte nicht unterschritten werden, es gibt auch nur eine 10-prozentige Toleranz. Das bedeutet, dass ein Cronjob, der alle 60 Minuten laufen soll, zwar auch alle 54 Minuten aufgerufen werden kann, ein geringeres Intervall wird aber nicht möglich sein - der Cronlauf wird direkt abgebrochen.
Für Entwickler
Die Cronjobs finden sich in der Datenbanktabelle cronjobs (eventuell mit Präfix). Dort können Sie neue Cronjobs hinzufügen oder das Intervall verändern - tun Sie dies aber bitte nur, wenn Sie wissen was Sie tun. Jeder Cronjob hat dort unter anderem ein Merkmal key. Das ist der GET-Parameter job beim Aufruf eines Cronjobs. Außerdem muss eine Datei key.php im Verzeichnis controller/crons existieren. Die einfachere Variante dürfte aber sein, weitere Aktionen im Anschluss an einen bestehenden Cronjob durchzuführen, hierzu können Sie den Hook Hook:Cronjob verwenden.