Für den korrekten Betrieb von SoSci Survey wir die automatisierte regelmäßige Ausführung zweier Skripte empfohlen:
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.
Die Server-Wartung kann auch manuell durchgeführt werden, zum Beispiel auf wenig genutzten Servern.
Das PHP-Script gibt folgende Meldungen zurück:
ok – Cronjob erledigt, alles in Ordnungwarning – Cronjob erledigt, es gab Warnungenerror – Cronjob erledigt, es gab Fehlerdenied – das Passwort stimmt nicht (sofern angegeben)delayed – der Cronjob wurde innerhalb der letzten 6 Stunden ausgeführt und muss noch nicht wieder ausgeführt werdenDer 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.
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-Einstellungen → Konfiguration → Karteireiter Server → Skript für Crontask.
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.
#!/bin/bash cd /var/www/html/admin/ /usr/bin/php /var/www/html/admin/cronjob.php password=PASSWORT
#!/bin/bash cd /var/www/html/admin/ /usr/bin/php /var/www/html/admin/crontask.php password=PASSWORT
www-data zuordnen. Außerdem müssen die Scripte das „excetuable flag“ bekommen.sudo chown www-data cronjob.sh crontask.sh sudo chmod u+x cronjob.sh crontask.sh
php kann variieren, z.B. /usr/lib/cgi-bin/php. Sie können den korrekten Pfad zum Beispiel über which php ermitteln.sudo -u www-data /s2data/s2survey/script/crontask.sh
sudo crontab -u www-data -e# 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
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.
C:\php\php.exe C:\webserver\documents\sosci\admin\crontask.php password=PASSWORT
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
crontask.bat angeben bzw. auswählencronjob.bat angeben bzw. auswählen