Offizielle Anleitungen für die LMN zu folgenden Aufgaben:
Weitere Anleitungen:
sophomorix-session --kill-all-sessions
Hier ein Skript aus dem Forum, wie man noch (unbeabsichtigt) laufende Klassenarbeiten entfernt bzw. Verzeichnisse entfernt die trotz beendeter Klassenarbeiten noch liegengeblieben sind.
# erster Teil stammt von Tobias Heine (linuxmuster-Forum Dez2020) cd /srv/samba/schools/default-school/examusers/ for dir in $(ls); do student=$(echo $dir | cut -d\- -f1) active_exam=$(sophomorix-user -iu $student |grep -i exammode) active_exam=$(echo $active_exam | cut -d" " -f2) if [ $active_exam == "---" ]; then printf "%-10s%-15s%-8s%s\n" $student $active_exam Loesche $dir rm -rf $dir else printf "%-10s%-15s%-8s%s\n" $student $active_exam Behalte $dir fi done # jetzt alle nicht beendeten Klassenarbeiten beenden Zeit=`date -Id` Pfad=transfer/collected/autoend Zeitpfad=$Pfad$Zeit cd /srv/samba/schools/default-school/examusers/ for i in "$(ls)"; do echo "Beende den Klassenarbeitsmodus für:" $i sophomorix-exam-mode --unset --subdir $Zeitpfad --participants $i done
Auf dem Server, ersetze „default-school“ durch deine Schule, falls ihr ein Mehrschulsystem habt.
# find /srv/samba/schools/default-school/share/classes/
# rm -r /srv/samba/schools/default-school/share/classes/*/*
# rm /srv/samba/schools/default-school/share/classes/*/.??*
Achtung: der Befehl hantiert direkt auf dem Filesystem. Das ist eigentlich nicht so vorgesehen. Besser wäre ein smbclient-Befehl an dieser Stelle oder wenigstens ein smbmount und dann die obigen Befehle. Siehe ASK-Eintrag hier von JeffBeck, Stichwort "rumfroschen".
Auch wenn es andere Methoden gibt, Klassen zu leeren, hier die manuelle Variante, abgekürzt, damit man es halbwegs lesen kann:
for i in 5a 5b 5c 6a 6b k1 k2 ; do sophomorix-class -c $i --admins "" ; done
Das setzt alle Admins auf den leeren String, d.h. niemand ist Administrator in der Klasse.
Stellt sich noch die Frage, wie man an die Liste der aktuellen Klassen kommt? Hier eine Möglichkeit:
sophomorix-class -i
Der Output ist formatiert. Mit folgender Zeile kann alle gewünschten zu leerenden Klassen bekommen, in dem man in der Liste am Ende des Befehls alle nicht zu leerenden Klassen rausfiltert, grep -vE 'eins|zwei|drei|usw
' . Dabei sind „Class“ und „adminclass“ dazu da die erste und letzte formatierte Zeile aus dem allgemeinen Befehl zu filtern.
sophomorix-class -i | grep '^|' | grep -vE 'Class|adminclass|praktikanten|attic'| awk -v ORS=' ' '{print $2}'
Alles in allem geht es dann vielleicht so:
adminsweg=$(sophomorix-class -i | grep '^|' | grep -vE 'Class|adminclass|attic'| awk -v ORS=' ' '{print $2}') echo $adminsweg for i in $adminsweg ; do sophomorix-class -c $i --admins "" ; done
Folgende Befehle sind für manche sinnvoll, z.B. wenn sie den Schuljahreswechsel so gestalten, dass alle Schüler aus der CSV entfernt werden (in attic geschoben werden), dann aufgeräumt wird und dann die Schüler wieder in die CSV kommen (mit neuer Klassenzuordnung).
Dank an @gpeter für die Zusammenfassung:
Entweder über Ändern des Status'
## Ändern des Status von Permanent auf "M" sophomorix-class -c 02fs02 --status M ## anschließenden löschens dieser so umgestellten Klassen per sophomorix-class --delete-all-empty-classes
oder direktes Löschen:
## direktes Löschen einer Klasse unabhängig von Status und Besitz sophomorix-class --kill --class 01fsu02