Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:server:crontask [12.04.2017 21:08] – [Zeitgesteuerte Aufgaben] adminde:server:crontask [03.08.2026 13:53] (aktuell) – [Windows 10 und Windows Server] admin
Zeile 1: Zeile 1:
-====== Zeitgesteuerte Aufgaben ======+====== Zeitgesteuerte Aufgaben (Cronjobs) ====== 
 + 
 +Für den korrekten Betrieb von SoSci Survey wir die automatisierte regelmäßige Ausführung zweier Skripte empfohlen: 
 + 
 +  - Serverwartung (einmal täglich, nachts) 
 +  - Zeitgesteuerte Funktionen (jede Minute) 
 + 
 + 
 +===== Serverwartung  ===== 
 + 
 +Einige Aufgaben müssen auf dem Befragungsserver regelmäßig erledigt werden: Die Archivierung alter Projekte, das Löschen temporärer Dateien, das Löschen obsoleter Benutzerkonten (Karteileichen) und die Optimierung der Datenbank-Tabellen. 
 + 
 +Diese Aufgaben erledigt ein Wartungsskript ''/admin/cronjob.php''. Dieses Skript ist mit einem Passwort geschützt, das Sie in den **Server-Einstellungen** unter **Konfiguration** festlegen können. Das Passwort wird dem Skript als Parameter ''password'' übergeben. 
 + 
 +Den vollständigen Pfad des PHP-Skripts finden Sie unter **Server-Einstellungen** -> **Konfiguration** -> Karteireiter //Server// -> //Skript für Server-Wartung//
 + 
 + 
 +==== Manuelle Wartung ==== 
 + 
 +Die Server-Wartung kann auch manuell durchgeführt werden, zum Beispiel auf wenig genutzten Servern. 
 + 
 +  * Melden Sie als Administrator in SoSci Survey an und wählen dort **Server-Verwaltung** -> **Server-Wartung** -> **Cronjob jetzt durchführen** 
 +  * Alternativ rufen Sie die URL direkt im Browser auf: **%%http://www.domain.tld/sosci/admin/cronjob.php?password=SECRET%%** 
 + 
 +==== Rückgabewerte ==== 
 + 
 +Das PHP-Script gibt folgende Meldungen zurück: 
 + 
 +  * ''ok'' -- Cronjob erledigt, alles in Ordnung 
 +  * ''warning'' -- Cronjob erledigt, es gab Warnungen 
 +  * ''error'' -- Cronjob erledigt, es gab Fehler 
 +  * ''denied'' -- das Passwort stimmt nicht (sofern angegeben) 
 +  * ''delayed'' -- der Cronjob wurde innerhalb der letzten 6 Stunden ausgeführt und muss noch nicht wieder ausgeführt werden 
 + 
 +Der Server-Administrator erhält eine E-Mail mit weiteren Details zum Cronjob, die auch hochgeladene Dateien, neue Benutzerkonten und Projekte listet. Einige Informationen aus dem Cronjob (z.B. gelöschte Nutzer und Projekte) werden zudem im Cronjob-Logfile vermerkt. 
 + 
 + 
 + 
 +===== Zeitgesteuerte Funktionen =====
  
 SoSci Survey erlaubt einige zeitgesteuerte Funktionen, z.B. die Übertragung von Interviews in die Datenbank bei niedriger Serverlast ([[caching|Schreibcache für Interviews]]), den zeitgesteuerten Versand von Serienmails oder (noch in Entwickung) eine regelmäßige Benachrichtigungen über die Anzahl der Befragungsteilnehmer. SoSci Survey erlaubt einige zeitgesteuerte Funktionen, z.B. die Übertragung von Interviews in die Datenbank bei niedriger Serverlast ([[caching|Schreibcache für Interviews]]), den zeitgesteuerten Versand von Serienmails oder (noch in Entwickung) eine regelmäßige Benachrichtigungen über die Anzahl der Befragungsteilnehmer.
Zeile 7: Zeile 45:
 Den absoluten Pfad zum PHP-Skript, welches Sie für die Einrichtung der zeitgesteuerten Ausführung benötigen, finden Sie unter **Server-Einstellungen** -> **Konfiguration** -> Karteireiter //Server// -> //Skript für Crontask//. Den absoluten Pfad zum PHP-Skript, welches Sie für die Einrichtung der zeitgesteuerten Ausführung benötigen, finden Sie unter **Server-Einstellungen** -> **Konfiguration** -> Karteireiter //Server// -> //Skript für Crontask//.
  
-**Wichtig:** Die [[de:server:maintenance|regelmäßige Wartung des Servers]] mittels ''admin/cronjob.php'' muss unabhängig von der Übertragung des Cache durchgeführt werden. Hier ist ein Intervall von 24 Stunden angemessen. 
  
 +===== Einrichtung unter Linux =====
  
-===== Linux =====+Erstellen Sie zwei Bash-Scripte, zum Beispiel unter ''var/www/script/'' mit folgendem Inhalt. Ersetzen Sie ''/var/www/html/'' durch das Installationsverzeichnis von Sosci Survey und ''PASSWORT'' durch das in den **Server-Einstellungen** festgelegte //Passwort für Cronjob//.
  
-Um das Skript auf einem Linux-System alle 5 Minuten auszuführen, tragen Sie folgenden Cronjob einDas Passwort legen Sie in SoSci Survey in der **Server-Verwaltung** unter **Server-Einstellungen** fest.+<file bash cronjob.sh> 
 +#!/bin/bash 
 +cd /var/www/html/admin/ 
 +/usr/bin/php /var/www/html/admin/cronjob.php password=PASSWORT 
 +</file>
  
-<code+<file bash crontask.sh
-*/5  *  *  *  *  /usr/lib/cgi-bin/php /var/www/html/sosci/admin/crontask.php password=SECRET+#!/bin/bash 
 +cd /var/www/html/admin/ 
 +/usr/bin/php /var/www/html/admin/crontask.php password=PASSWORT 
 +</file> 
 + 
 +  * Wir empfehlen, dass Sie die Skripte dem Benutzer ''www-data'' zuordnen. Außerdem müssen die Scripte das "excetuable flag" bekommen. 
 + 
 +<code bash> 
 +sudo chown www-data cronjob.sh crontask.sh 
 +sudo chmod u+x cronjob.sh crontask.sh
 </code> </code>
  
-Um den Cronjob anzulegenverwenden Sie ''crontab''Legen Sie den Cronjob für den Linux-Nutzer an (im folgenden Beispiel ''www-data''), mit dessen Rechten auch der Webserver läuftSo vermeiden Sie Probleme mit Zugriffsrechten.+  * Der Pfad von ''php'' kann variierenz.B. ''/usr/lib/cgi-bin/php''. Sie können den korrekten Pfad zum Beispiel über ''which php'' ermitteln. 
 +  * Testen Sie den Aufruf des Scripts in der Konsole.
  
 <code bash> <code bash>
-sudo crontab -e -u www-data+sudo -u www-data /s2data/s2survey/script/crontask.sh
 </code> </code>
  
-===== Windows =====+  *  Anschließend können Sie einen Cronjob anlegen mittels ''sudo crontab -u www-data -e'' 
 + 
 +<code crontab> 
 +# m  h   dom mon dow  command 
 +*/1  *    *       /var/www/script/crontask.sh >/dev/null 2>&
 +30      *       /var/www/script/cronjob.sh >/dev/null 2>&
 +</code> 
 + 
 + 
 +===== Einrichtung unter Windows =====
  
 Unter Windows ist für die regelmäßige Ausführung von Skripten der Aufgabenplaner zuständig (Geplante Tasks, Aufgabenplanung).  Unter Windows ist für die regelmäßige Ausführung von Skripten der Aufgabenplaner zuständig (Geplante Tasks, Aufgabenplanung). 
Zeile 30: Zeile 91:
 Zunächst ist eine ausführbare Datei erforderlich, welche den PHP-Interpreter aufruft und das PHP-Skript als Parameter übergibt -- etwa eine einfache Batch-Datei (''*.bat''). Die Pfade im folgenden Beispiel müssen an die jeweilige Installation angepasst werden. Zunächst ist eine ausführbare Datei erforderlich, welche den PHP-Interpreter aufruft und das PHP-Skript als Parameter übergibt -- etwa eine einfache Batch-Datei (''*.bat''). Die Pfade im folgenden Beispiel müssen an die jeweilige Installation angepasst werden.
  
-<code batch> +<code batch crontask.bat
-C:\php\php.exe C:\webserver\documents\sosci\admin\crontask.php password=SECRET+C:\php\php.exe C:\webserver\documents\sosci\admin\crontask.php password=PASSWORT 
 +</code> 
 + 
 +<code batch cronjob.bat> 
 +C:\php\php.exe C:\webserver\documents\sosci\admin\cronjob.php password=PASSWORT
 </code> </code>
  
 Führen Sie die Datei testweise aus, um die Pfade zu überprüfen. Die regelmäßige Ausführung dieser Datei wird anschließend im Aufgabenplaner als Aufgabe erstellt. Führen Sie die Datei testweise aus, um die Pfade zu überprüfen. Die regelmäßige Ausführung dieser Datei wird anschließend im Aufgabenplaner als Aufgabe erstellt.
  
-  * Windows XP: Systemsteuerung -> Geplante Tasks -> Geplanten Task hinzufügen ([[http://stefan-meissner.com/ein-cronjob-unter-windows/|Ein Cronjob unter Windows]]) + 
-  Windows 7: Systemsteuerung -> Verwaltung -> Aufgabenplanung -> Aufgabe erstellen ([[http://windows.microsoft.com/de-de/windows/schedule-task#1TC=windows-7| +  * Aufgabenplanung öffnen 
-Planen eines Tasks]]) +    * Ausführen-Dialog 
-  * Windows 8Ausführen (Windows-Taste + R-> ''taskschd.msc'' eintippen -> OK -> Aktion -> Einfache Aufgabe erstellen ([[http://bits-meet-bytes.de/windows-8-1-aufgabenplanung/|Windows 8.1 Aufgabenplanung]])+      * Windows-Taste + R drücken 
 +      * Befehl eingebentaskschd.msc eintippen und bestätigen 
 +    Alterantiv: Systemsteuerung → Verwaltung → Aufgabenplanung 
 + 
 +In der Aufgabenplanung  
 + 
 +  * Im rechten Bereich: Auf „Aktion" klicken (oberes Menü) 
 +  * Option auswählen„Einfache Aufgabe erstellen..." 
 +  * Assistent folgen: Der Assistent für die Erstellung einer einfachen Aufgabe öffnet sich 
 + 
 + 
 +  * Aufgabe 1crontask.bat jede Minute ausführen 
 +    * Name vergeben (z. B. "SoSci Survey zeitgesteuerte Funktionen") 
 +    * Trigger: "Täglich" auswählen → Einstellung anpassen auf "Jede Minute" (oder "Einmalig" mit Wiederholung alle 1 Minute) 
 +    * Aktion: "Programm starten" 
 +    * Programm/Skript: Pfad zu ''crontask.bat'' angeben bzw. auswählen 
 +    * Fertigstellen 
 + 
 +  * Aufgabe 2: cronjob.bat einmal täglich ausführen 
 +    * Name vergeben (z. B. „SoSci Survey nächtliche Wartung"
 +    * Trigger„Täglich" auswählen → Zeit festlegen (zB00:00 Uhr) 
 +    * Aktion: „Programm starten" 
 +    * Programm/Skript: Pfad zu ''cronjob.bat'' angeben bzw. auswählen 
 +    * Fertig stellen 
 + 
de/server/crontask.1492024088.txt.gz · Zuletzt geändert: von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki