#344 closed Aufgabe (erledigt)
Dateien der Quotasünder löschen
| Reported by: | Rüdiger Kupper | Owned by: | Rüdiger Kupper |
|---|---|---|---|
| Priority: | bei Gelegenheit | Milestone: | |
| Component: | Server: LML-Server (paedml) | Severity: | beeinträchtigt den Unterricht einiger Lehrer |
| Keywords: | Cc: | bau |
Description
Die Nutzer, die nach Ablauf ihrer Grace Period noch immer über der Quota liege, sollen automatisch eine Mail erhalten, dass ihre Dateien bei nächster Gelegenheit gelöscht werden. Danach sollen ihre Dateien gelöscht werden.
Change History (22)
comment:1 by , 15 years ago
comment:2 by , 15 years ago
Hi, wenn ich das recht sehe macht das sophomorix-repair mit der Option --repairhome und der Einschränkung -u user (man sophomorix-repair)
comment:3 by , 15 years ago
Aha!
Das heißt, ich könnte ein gnadenloses rm -r /home/$uid/ machen und danach das Homeverzeichnis damit wieder neu anlegen lassen?
Wie das läuft wäre auch gut zu wissen für das Problem, dass die Schüler nicht auf den Tauschordner zugreifen können. Vielleicht finden wir raus, wieso das sophomorix die Besitzer und Rechte auf dem Tauschordner so seltsam setzt...
comment:4 by , 15 years ago
Ich habe ein überarbeitetes Skript geschrieben: source:keplertools/scripts/trunk/userfileinfo
Das Skript bekommt als Argument die uid eines Nutzers.
- Es gibt im Homeverzeichnis des Nutzers nur eine verzeichnisweise Übersicht über den Platzbedarf.
- Es gibt alle einzelnen Dateien an, die dem Nutzer in irgendwelchen Tauschverzeichnissen gehören, thematisch sortiert.
Das Skript läuft online, Du kannst also mal testen, wie lange es braucht. Aufruf z.B.
userfileinfo bau | less
comment:5 by , 15 years ago
Hier gibt's ein nettes awk-Skript, das ich mir noch anschaun kann, falls mir mal richtig langweilig sein sollte...
http://www.linuxquestions.org/questions/linux-general-1/find-disk-usage-per-user-on-a-filesystem-213853/
comment:6 by , 14 years ago
| Milestone: | → Wunschliste |
|---|---|
| Severity: | → normal |
comment:7 by , 14 years ago
| Milestone: | Wunschliste → unbestimmt |
|---|
comment:8 by , 13 years ago
Mit der folgenden Sequenz kann man das Homeverzeichnis eines Nutzers löschen und so wiederherstellen, dass es normal funktioniert. (Daten in den Tauschverzeichnissen werden nicht gelöscht.)
Auf dem paedml:
root@paedml:~# sophomorix-user --reset-user <UID> root@paedml:~# deploy-skeleton . <UID>
Der erste Befehl löscht das Homeverzeichnis des Nutzers und stellt die für die LML nötige Infrastruktur wieder her (Links zu den Tauschverzeichnissen).
Der zweite Befehl verteilt die Dateien aus "unserem" Skeleton in /etc/skel-{teachers,students}.
Ich schlage vor, diese Sequenz bei den "hartnäckigen Quotasündern" auszuführen. Damit ist zumindest mal das Homeverzeichnis leer. Für Dateien in den Tauschverzeichnissen müssen wir noch eine Lösung finden, mit dem "userfiles"-Skript sollte das kein großes Problem mehr sein.
comment:9 by , 13 years ago
Update: Bei einem neu erzeugten (oder resetteten) Nutzer tritt das Problem auf, dass er sich womöglich erst nach mehr als einem Tag das erste Mal einloggt. In diesem Fall hat unser Skeleton-Mechanismus bereits das Verzeichnis "Arbeitsfläche" erstellt. In dem Fall tut das xdg-update-userdirs, das beim Login läuft, einfach gar nichts. Effekt: Die übrigen Verzeichnisse (Vorlagen, Bilder, Dokumente, etc.) werden nicht wie sonst beim ersten Login automatisch erzeugt.
Um das Problem zu vermeiden, legt unser Skeleton-Mechanismus diese Verzeichnisse nun ebenfalls an.
Damit kann der zweite oben genannte Befehl (xsg-update-userdirs) ebenfalls entfallen.
comment:10 by , 13 years ago
Kurze Zwischenfrage: Kann man dem sophomorix eigentlich beibrigen, beim Erzeugen/Resetten des Accounts als letzten Schritt automatisch unser "deploy-skeleton" aufzurufen?
comment:11 by , 13 years ago
Wir haben nun das ultimative "böse Skript":
source:keplertools/scripts/trunk/find-userfiles
Wird es mit einem Nutzernamen als Argument aufgerufen, zeigt es einfach nur die Dateien des Nutzers in den Tauschverzeichnissen an. Wird zusätzlich die Option "--delete" gesetzt, so werden (nach einer Sicherheitsabfrage) seine sämtlichen Dateien in den Tauschverzeichnissen gelöscht, dann wird sein Homeverzeichnis gelöscht und neu angelegt:
root@paedml:~# find-userfiles --help
Usage: find-userfiles [-h|--help]
find-userfiles uid
find-userfiles --delete [--force] uid
Dieses Skript sucht alle Dateien eines Nutzers
in sämtlichen Tauschverzeichnissen und zeigt ihre Namen an.
Wird die Option '--delete' gesetzt, so werden die Dateien stattdessen
gelöscht. Danach wird das Homeverzeichnis des Nutzers ebenfalls
gelöscht und neu angelegt.
ACHTUNG! MIT VORSICHT VERWENDEN! Beim Löschen erfolgt eine Sicherheits-
abfrage. Diese kann mit der Option '--force' umgangen werden.
Zum Beispiel lässt sich das Account unseres Testlehrers nun löschen und neu anlegen mit:
find-userfiles lehrer --delete
comment:12 by , 13 years ago
| Resolution: | → erledigt |
|---|---|
| Status: | new → closed |
Neues Skript: source:keplertools/scripts/trunk/overquota
Zeigt die Nutzer an, die ihre Quota auf dem Filesystem von /home überschritten haben und erinnert daran, die Dateien möglicherweise zu löschen.
Das Skript wird jetzt täglich per Cron ausgeführt und ersetzt die Kopien des "warnquota"-Skripts, die root bisher täglich erhielt.
Das Skript könnte natürlich auch so gestaltet werden, dass es die Dateien selbst löscht, das scheint mir aber nicht angebracht.
comment:13 by , 13 years ago
Eine Option wäre ganz sinnvoll:
Nur Löschen der Dateien des Nutzers in den Tauschverzeichnissen OHNE Löschung und Neuanlegen des HomeVZ.
Wenn ein User over quota ist, dann kann man erstmal seine Dateien in den TauschVZ löschen.
comment:14 by , 13 years ago
Noch so ein Standardkandidat für eine Löschung ist der Mülleimer des Nutzers. Viele Nutzer wissen nicht, dass Dateien erst einmal im Mülleimer landen und gar nicht wirklich gelöscht werden und wundern sich dann, dass sie die Qutawarnung weiter erhalten, obwohl sie "alles gelöscht" haben.
Die Löschung des Mülleimers könnte man wohl auch automatisch ausführen. Ich bin nur grade nicht ganz sicher, wo der sich versteckt und ob's eine "vorgesehene" Technik dafür gibt.
comment:15 by , 13 years ago
| Resolution: | erledigt |
|---|---|
| Status: | closed → reopened |
Okay, wenn ich schon dabei bin...
comment:16 by , 13 years ago
So.
- Das Skript "find-userfiles" ist jetzt harmlos und macht nur, was der Name sagt: Dateien in den Tauschverzeichnissen finden und anzeigen.
- Der "böse" Teil wurde ausgelagert in das Skript "delete-userfiles". Die Funktionalität wurde erweitert, siehe Hilfstext:
root@paedml:~# delete-userfiles -h Usage: delete-userfiles [-h|--help] delete-userfiles --trash|--share|--home|--all [--force] uid Dieses Skript findet und löscht Dateien eines Nutzers. Je nach Option kann es: --trash: den Mülleimer des Nutzers löschen --share: die Dateien des Nutzers in allen Tauschverzeichnissen löschen --home : das Homeverzeichnis des Nutzers löschen und neu anlegen --all : alles oben genannte ACHTUNG! MIT VORSICHT VERWENDEN! Eine der Optionen muss angegeben werden. Bei --share, --home und --all erfolgt eine Sicherheitsabfrage. Diese kann mit der Option --force umgangen werden. Der betroffene Benutzer sowie root erhalten eine Löschbestätigung per Mail. Siehe auch: find-userfiles
comment:17 by , 13 years ago
Als nächstes würde ich das "overquota"-Skript so erweitern, dass es von selbst die Mülleimer der Nutzer über der Quota leert.
comment:18 by , 13 years ago
| Resolution: | → erledigt |
|---|---|
| Status: | reopened → closed |
Okay, die Mülleimer der Nutzer über Quota werden jetzt automatisch geleert.
Das hat diesmal allerdings nur bei einem der dreizehn Kandidaten geholfen....
comment:19 by , 13 years ago
Frage:
Sind 7 Tage "grace period" bei uns angemessen, oder sollten wir die verlängern?
comment:20 by , 13 years ago
Ich finde sieben Tage OK. Eine Verlängerung würde glaube ich nichts bringen!
comment:21 by , 13 years ago
Ab jetzt haben auch Schüler ein fertig eingerichtetes Thunderbird-Account mit ihrer Mailadresse (vgl. comment:19:ticket:769). Damit begegnen wir der Aussage, die ich häufig zu hören bekomme:
"Ach, Sie haben mir eine Mail geschrieben? Da schau ich eh nie rein, ich weiß gar nicht, wie das geht."
In Zukunft brauchen die Schüler nur auf das Thunderbird-Symbol zu klicken und können ihre Mail lesen.
Wenn wir das bei den Kollegen ebenfalls mal etwas bekannter machen, kommen wir vielleicht auch mal von dem leidigen Horde weg. Aber Zarafa sitzt ja auch schon in den Startlöchern :-).
Bevor ich jetzt in deren Homeverzeichnis ein
rm -r *" mache: wie erhalte ich die Infrastruktur zurück, insbesondere das~/tauschen`-Verzeichnis? Welches Skript legt die an?