Vergessene Klassenarbeiten nachts beenden

Hallo liebe Freunde!

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 :see_no_evil:
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.

Viele Grüße
Micha

ka-ende.zip (374 Bytes)

1 „Gefällt mir“

Hallo Michael,

vielen Dank für das Script.
Das ist eine feine Idee.

Für das Zurücksetzen des WLAN Status in der NAcht verwende ich schon diese Zeile in der crontab:

0 23 * * * root /usr/sbin/sophomorix-managementgroup --set-wifi default

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

Viele Grüße

Holger

Hi Holger,

Das sagt sophomorix immer :wink:

VG, Dorian

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

Das räumt jetzt hoffentlich alles ordentlich auf.

Viele Grüße
Micha

ka-ende.zip (635 Bytes)

Hallo Micha,
by Design is alles was auf meinem Mist wächst OpenSource … meistens sogar unter WTFPL :wink:
Viele Grüße
Tobi

2 „Gefällt mir“

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 Tobias!
War noch gar nicht dazu gekommen, darüber nachzudenken. :see_no_evil:
Freut mich, dass es hilft.
Viele Grüße
Micha

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:

./ka-ende.sh: line 9: [: ==: unary operator expected
musterm   Behalte        musterm-exam 

:thinking:

Danke für das Tool!!!
McTeefax

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

Hallo zusammen,

@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.

Viele Grüße

Tobi

Ist ja nicht komplett mein Skript. Die Hälfte stammt ja von Tobias.
Also Dank auch an dich!

Micha

@toheine und @michael_kohls
Okay, geht klar, wollte nur sicher gehen.
Herzlichen Dank euch beiden für euer Engagement. :clap: :ok_hand:

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.

Beste Grüße
McTeefax