Inhaltsverzeichnis

Zeitgesteuerte Aufgaben (Cronjobs)

Für den korrekten Betrieb von SoSci Survey wir die automatisierte regelmäßige Ausführung zweier Skripte empfohlen:

  1. Serverwartung (einmal täglich, nachts)
  2. 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-EinstellungenKonfiguration → Karteireiter ServerSkript für Server-Wartung.

Manuelle Wartung

Die Server-Wartung kann auch manuell durchgeführt werden, zum Beispiel auf wenig genutzten Servern.

Rückgabewerte

Das PHP-Script gibt folgende Meldungen zurück:

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 (Schreibcache für Interviews), den zeitgesteuerten Versand von Serienmails oder (noch in Entwickung) eine regelmäßige Benachrichtigungen über die Anzahl der Befragungsteilnehmer.

Für die korrekte Ausführung der zeitgesteuerten Funktionen muss das Skript admin/crontask.php regelmäßig ausgeführt werden. Empfohlen wird ein Aufruf alle 1-5 Minuten – rufen Sie das Skript seltener auf, kann der Zeitpunkt wann eine Aufgabe abgearbeitet wird, stärker vom geplanten Zeitpunkt abweichen.

Den absoluten Pfad zum PHP-Skript, welches Sie für die Einrichtung der zeitgesteuerten Ausführung benötigen, finden Sie unter Server-EinstellungenKonfiguration → Karteireiter ServerSkript für Crontask.

Einrichtung unter 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.

cronjob.sh
#!/bin/bash
cd /var/www/html/admin/
/usr/bin/php /var/www/html/admin/cronjob.php password=PASSWORT
crontask.sh
#!/bin/bash
cd /var/www/html/admin/
/usr/bin/php /var/www/html/admin/crontask.php password=PASSWORT
sudo chown www-data cronjob.sh crontask.sh
sudo chmod u+x cronjob.sh crontask.sh
sudo -u www-data /s2data/s2survey/script/crontask.sh
# m  h   dom mon dow  command
*/1  *    *   *   *   /var/www/script/crontask.sh >/dev/null 2>&1
30   4    *   *   *   /var/www/script/cronjob.sh >/dev/null 2>&1

Einrichtung unter Windows

Unter Windows ist für die regelmäßige Ausführung von Skripten der Aufgabenplaner zuständig (Geplante Tasks, Aufgabenplanung).

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.

crontask.bat
C:\php\php.exe C:\webserver\documents\sosci\admin\crontask.php password=PASSWORT
cronjob.bat
C:\php\php.exe C:\webserver\documents\sosci\admin\cronjob.php password=PASSWORT

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.

In der Aufgabenplanung