Änderungen

Cronjobs

3.562 Byte hinzugefügt, 20:53, 26. Mär. 2020
== 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 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 aktualisiert die Kurse der [[Währungen]] automatisch, wenn dies aktiviert ist und die Währungs-Codes gültig sind.
== Cronjob-Einrichtung der Cronjobs : URL ==Die einfachste Variante der Cronjob-Ausführung ist der Aufruf über die Cronjob-URL. Diese finden Sie sollten alle angezeigten unter "Einstellungen > System-Einstellungen > Cronjobs in angegebenen ", dort erhalten Sie auch das entsprechende Ausführungs-Intervall einrichten. Die URL ist unter dem Webseite-Icon auffindbar, zum Beispiel diese muss als Cronjob eingerichtet werden. == Cronjob-Einrichtung: PHP-CLI ==Eine weitere Variante zur Ausführung der Cronjobs ist der Aufruf über die PHP-Kommandozeile. Dies ist die bevorzugte Variante. Unter "Einstellungen > System-Einstellungen > Cronjobs" finden Sie die verfügbaren Cronjobs samt Ausführungs-Intervalle. Am Ende einer jeden Zeile der Tabelle finden Sie die Cronjob-URL. In dieser befindet sich der Parameter "job", dieser enthält den Cronjob-Key (etwa ''crontabrecurring'' oder über Ihr Verwaltungsinterface ). Den Email-Cronjob würden Sie wie folgt einrichten (Linuxcrontab-TippStil):  <source lang="bash">* * * * * /path/to/php /path/to/sourcedesk/index.php cron queue</source> == Cronjob-Einrichtung: 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 ''wget pthreads''. Der Aufruf erfolgt in einer Shell mit: <source lang="bash">nohup php /var/www/sourceDESK/index.php cron _all &</source> Hierbei ist der Pfad zu sourceDESK anzupassen, eventuell muss auch der Pfad für die PHP-Binary geändert werden. Eine Passwort-spider 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: <source lang="URLvim">[Unit]Description=sourceDESK CronjobRequires=mysqld.serviceAfter=mysqld.service [Service]User=rootType=simpleTimeoutSec=0PIDFile=/var/run/sourcedesk.pidExecStart=php -f /var/www/sourceDESK/index.php cron _all> /dev/null 2>/dev/nullKillMode=process Restart=on-failureRestartSec=30s [Install]WantedBy=default.target</source> Die Datei - und jegliche Änderungen - müssen mit '')systemctl daemon-reload'' im System bekannt gemacht werden. Über die Administration deaktivierte Cronjobs lassen sich nicht mehr aufrufen Der Dienst kann dann mit ''systemctl start sourcedesk'' gestartet werden. Um ihn beim Booten zu starten, sollten aber trotzdem als Cronjob im Crontab eingetragen sein, damit sie nach der erneuten Aktivierung wieder laufenmuss ''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 heißtbedeutet, 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.