Automatisierte Löschung von Moodle-Kursen, eine Schritt für Schritt Anleitung

Lernmanagementsysteme wie Moodle und Co werden immer häufiger auch für den interaktiven Unterricht genutzt, nicht zuletzt aufgrund der Corona Krise. Diese Krise hat allen gezeigt, dass wir sparsam mit Ressourcen umgehen müssen, dies gilt auch für die IT. Aufgrund dessen möchte ich aufzeigen, wie man mithilfe der automatisierten Löschung, Speicher und somit Ressourcen einsparen kann.

Die Lernplattform Moodle wird weltweit von vielen Hochschulen genutzt, um bspw. die digitalen Lernmaterialien zur Verfügung zu stellen oder aber um online Prüfungen, Quizzes, Gruppenarbeiten, usw. durchzuführen. In den meisten Fällen wird hierfür pro Semester ein neuer Kurs erstellt. So entstehen über die Jahre viele Moodle-Kurse, welche nicht genutzt werden und brach liegen. Um IT-Ressourcen zu schonen und die Übersicht über die Kurse zu behalten, ist eine Kurslöschung notwendig. Moodle und die zur Verfügung stehenden Plugins bieten hierfür unterschiedliche Möglichkeiten an. Eine Möglichkeit wäre, die Kurse manuell zu löschen. Bei dieser Option könnten bspw. ein gesamter Kursbereich in einem Schritt gelöscht werden. Das Problem hierbei ist, dass in jedem Fall alle Kurse gelöscht und die Dozierenden keinen Zugriff auf mögliche notwendige Daten mehr haben, d.h. die Dozierenden haben keine Hoheit über ihre Moodle-Kurse.

Eine zweite Möglichkeit, auf welche dieser Post anschliessend näher eingeht ist die automatisierte Kurslöschung mit dem Moodle-Plugin Course Life Cycle. Das Plugin hat in erster Linie den Zweck, wiederkehrende Aufgaben im Moodle zu automatisieren. Das Plugin bietet folgende Möglichkeiten:

  • Löschen von Kursen am Ende ihrer Lebensdauer (einschließlich der Bitte um die Erlaubnis der Lehrer).
  • Durchführen eines Rollover am Ende eines Semesters.
  • Automatisches Setzen eines Enddatums für Kurse.

Quelle: https://moodle.org/plugins/tool_lifecycle

Das Plugin bietet unterschiedliche Standardmöglichkeiten, wie Kursbereiche, Startdaten, Kursstartdaten, Mailversand, Erstellung von Backups, Kurse löschen auszuwählen für einen sogenannten Workflow. Mittels diesem wird die gesamte Kurslöschung anschliessend automatisiert. Um die Automatisierung vorzunehmen habe ich folgende Schritte durchgeführt:

Schritt 1

In einem ersten Schritt habe ich den gesamten Prozess definiert. Um diesen zu definieren wurden folgende Überlegungen gemacht:

  • Ab wann werden Kurse nicht mehr benötigt?
  • Wer soll benachrichtigt werden, dass die Kurse gelöscht werden?
  • Sollen Dozierende die Möglichkeit haben, Kurse trotzdem zu behalten?
    • wenn ja, wie lange sollen diese Kurse vom Prozess ausgeschlossen werden?
    • wenn ja, wie soll die Reaktionszeit sein?
  • Wann sollen Backups gelöscht werden?

Im Normalfall dauert ein Bachelorstudium 3 Jahre als Vollzeitstudium und 4 Jahre als Teilzeitstudium. Das würde heissen, die Studierenden haben nach dieser Zeit kein Zugriff mehr auf die Daten. Da es aber auch Ausnahmen gibt, bei der Studierende eine längere Studienzeit haben ist eine Lebensdauer des Kurses vertretbar. In den meisten Fällen haben die Dozierenden mit den Kursen am meisten zu tun, deswegen werden auch nur diese Informiert. So könnten diese bspw. noch benötigte Materialien wie Unterrichtsskripte etc. noch herunterladen, oder in ihrem Standardkurs das Datum anpassen.

Nachdem die Dozierende ein Mail mit den betroffenen Kursen erhalten haben, besteht für sie die Möglichkeit, die Kurse zu behalten. Hierfür erhalten diese ebenfalls einen Link im Mail. Möchten sie den Kurs behalten, wird dieser für ein Jahr vom Prozess ausgeschlossen. Reagieren die Dozierenden nicht, erhalten sie ein Erinnerungsmail. Wurde immer noch nichts unternommen, d.h. der Kurs wird von ihnen ausgeschlossen, wird ein Backup erstellt und der Kurs gelöscht.

Da es in diesem Prozess darum geht, Ressourcen zu schonen, sollte auch das Backup gelöscht werden. Dieses dient im Grunde nur dazu, wenn ein Dozierender nicht reagiert hat bzw. trotzdem noch etwas aus dem veralteten Kurs benötigt, den Kurs wiederherzustellen.

Schritt 2

Nachdem nun definiert wurde, wie der Prozess aufgebaut wird kann es zur Umsetzung kommen. Hierfür muss zuerst das Moodle-Plugin Course Life Cycle installiert werden. Es empfiehlt sich, direkt nach der Installation die Standardeinstellungen vorzunehmen. So sollte bspw. der Pfad zum Backup-Ordner gesetzt werden oder aber die Zeit für den Ausschluss der Kurse gesetzt werden. Wichtig bei der Erstellung des Backup-Ordners ist, die Rechte zu Kontrollieren. Moodle bzw. das Plugin sollte hierbei Zugriff auf den Ordner erhalten.

Schritt 3

Anschliessend können die verschiedenen Trigger und Schritt-Instanzen gesetzt werden. Damit nicht alle Kurse von einem Prozess erfasst werden, wird zu Beginn der Kursbereich-Trigger gesetzt. Die Prozesse werden nach den Kursbereichen aufgeteilt. Für jeden Bereich einen neuen, der Grund hierfür ist die Übersichtlichkeit und das so die Prozesse für die einzelnen Studiengänge welche die Kursbereiche darstellen einzeln gehandhabt werden. Anschliessend erstellen wir die Trigger-Instanz Stardatumsabstand, hier wird angegeben welche Kurse in den Prozess aufgenommen werden. In diesem Fall solche die älter als 5 Jahre sind.

Nachdem nun die Trigger gesetzt sind, können die einzelnen Schritte des Prozesses gesetzt werden. Im ersten Schritt werden die Informationsmails gesendet, als nächstes das Erinnerungsmail. Nachdem die Mails versendet wurden und von den Dozierenden nichts unternommen wurde, werden die Backups der Kurse erstellt und gelöscht.

Quelle: https://moodle.org/plugins/tool_lifecycle

Schritt 4

Als letzter Schritt, welcher nach dem automatisierten Prozess durchgeführt wird, sollten die erstellten Backups noch gelöscht werden. Jedoch sollten die Löschung, wie im BPMN Modell erst nach der definierten Zeit durchgeführt werden. In der jetzigen Konfiguration des Prozesses muss dies noch manuell bspw. mit dem Kommando:

rm -r /path/to/directory/*

Da die Moodle-Kurse im Normalfall Semesterweise erstellt werden und so das Startdatum immer Nahe beieinander liegt, könnte dieser Schritt ebenfalls noch automatisiert werden. Bspw. mit Hilfe eines Cronjobs.

 

Weiterführende Links:

Zusätzliche Subplugins für weitere Trigger- und Schritt-Instanzen

Bashskript zur automatisierten Löschung von Files

 

 

 

Beitrag teilen

thomaswieling

Manuel Brunner ist Student an der OST und studiert Wirtschaftsinformatik.

Alle Beiträge ansehen von thomaswieling →

Schreibe einen Kommentar