manchmal bereitet es Probleme, wenn ein gestarteter Klassenarbeitsmodus „vergessen“ wurde. Dann behindert das den nächsten Lehrer beim Unterrichtsstart. Um zumindest nachts alle Klassen wieder aus einem evtl. KA-Modus zu holen, habe ich mir ein kleines Skript geschrieben, welches nachts per cronjob ausgeführt wird.
Es tut seinen Dienst, wenn auch recht quick&dirty
Im Moment lasse ich es nur auf meinem Testserver laufen und noch nicht produktiv.
Was haltet ihr davon? Es gibt sicher noch Verbesserungspotenzial, z.B. könnten auch die Berechtigungen (Internet, WLAN) zurückgesetzt werden. Da hab ich aber noch keinen Ansatz.
Ich hab gleich mal in srv/samba/schools/default-school/examusers/ nachgeschaut, ob ich da noch Examuser rumschimmeln habe und hab auch gleich einige gefunden …
Also hab ich mal dein Script angeworfen.
Es sagt, dass es den exam user zum user „muellema“ jetzt löscht und dann, dass er einen nonexisting user nicht löschen kann.
Dementsprechend ändert sich nicts im examuser Verzeichnis: die schimmeln also weiter.
Ich hab die Verzeichnisse dann von Hand gelöscht, da es die exam user ja anscheinend nicht mehr gibt und da die Verzeichnisse eh leer waren.
Außerdem sagt das Script:
/usr/sbin/sophomorix-transfer --copy-account-data --collect-copy-exam muellema-exam --subdir transfer/collected/autoend2021-04-18
Command line::
Option verbose is a modifier option
Hmmh. do not know what to do with option info
Option json is a modifier option
* forcing info mode
Hallo nochmal!
Danke Holger für den Hinweis. Habe mich an einen älteren Post von @toheine erinnert, der schonmal ein Skript zum aufräumen hängengebliebener User erstellt hatte.
Habe nun mein Skript nochmal leicht angepasst (hatte Probleme, wenn keine nicht beendeten Klassenarbeiten vorlagen) und mit dem Skript von Tobias kombiniert. (Der hoffentlich nichts dagegen hat?)
Siehe: Hängengebliebene User im Exam-Mode
Hallo Micha,
nur ein Gedanke zu Deinem Skript: Du speicherst ja die Dateien in einem eigens angegebenen Subdir. Wenn Du die subdir-Option weglassen würdest, würde die Lehrkraft in ihrem transfer-Ordner einen -nosession-Ordner bekommen, die den Klassenarbeitsmodus eingeschaltet hat. So hat sie halt der ausführende Admin. Oder verstehe ich das falsch?
Viele Grüße
Tobi
Hallo Micha,
mein Eintrag von gestern ist quatsch. Vergiss es. Ich hatte die subdir-Option falsch verstanden. Super Skript … ist jetzt bei uns im Einsatz. Danke.
Greetings
Tobi
Hallo Michael,
aus aktuellem Anlass habe ich das Skript bei mir auch getestet.
Es waren noch Ordner von Exam-Usern da, deren eigenlticher Account aber nicht mehr in der students.csv vorhanden ist. Deren Ordner wurde nicht gelöscht. Stattdessen kam folgende Meldung:
Hallo McTeefax!
Die Ordner nicht mehr existierender User musst du wahrscheinlich per Hand löschen. Bei regelmäßigem Einsatz des Skripts dürfte das in Zukunft aber nicht mehr erforderlich sein.
Was die Meldung betrifft, da muss ich erstmal drüber nachdenken. Der erste Teil des Skripts stimmt von @toheine . Vielleicht hat er ne Idee?
Ist der User musterm einer der nicht mehr vorhandenen User?
Viele Grüße
Micha
@mcteefax Das ist bei mir auch zufällig aufgeschlagen.Diesen Ordner 1x manuell löschen und in Zukunft Michas Skript jede Nacht laufen lassen. Damit wäre es sehr unwahrscheinlich, dass das nochmal aufschlägt. Das wäre nur der Fall wenn:
… ein Schüler eine Klassenarbeit im Exam-Modus schreibt … UND
… nach dem Beenden der Ordner tatsächlich hängen bleibt (das passiert ja nur vereinzelt) … UND
… der Schüler sich sofort nach der Klassenarbeit von der Schule abmeldet und darauf besteht dass sein Nutzer sofort und vollständig aus dem System gelöscht wird
… und der zuständige Admin das dann auch noch macht bevor das Michas Skript nachts durchläuft.
@toheine und @michael_kohls
Okay, geht klar, wollte nur sicher gehen.
Herzlichen Dank euch beiden für euer Engagement.
Damit keine Fehlermeldung kommt, wenn kein Klassenarbeitsmodus mehr aktiv ist, habe ich am Ende noch „intuitiv“ eine if-Abfrage eingesetzt:
for i in "$(ls)"; do
if [ $i ]; then
echo "Beende den Klassenarbeitsmodus für:" $i
sophomorix-exam-mode --unset --subdir $Zeitpfad --participants $i
else
echo "Kein Klassenarbeitsmodus aktiv"
fi
done
Ansonsten erscheint eine Meldung, dass ein Parameter fehlt - was im zeitgesteuerten nicht sichtbar ist:
Beende den Klassenarbeitsmodus für:
Option participants requires an argument
Command line::
You have made a mistake, when specifying options.
See error message above.