close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 15 years ago

Closed 13 years ago

Last modified 9 years ago

#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 Rüdiger Kupper, 15 years ago

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?

comment:2 by bau, 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 Rüdiger Kupper, 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 Rüdiger Kupper, 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 Rüdiger Kupper, 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 Rüdiger Kupper, 14 years ago

Milestone: → Wunschliste
Severity: → normal

comment:7 by Rüdiger Kupper, 14 years ago

Milestone: Wunschliste → unbestimmt

comment:8 by Rüdiger Kupper, 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.

Last edited 13 years ago by Rüdiger Kupper (previous) (diff)

comment:9 by Rüdiger Kupper, 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 ebenfalls entfallen.

Version 0, edited 13 years ago by Rüdiger Kupper (next)

comment:10 by Rüdiger Kupper, 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 Rüdiger Kupper, 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 Rüdiger Kupper, 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 bau, 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 Rüdiger Kupper, 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 Rüdiger Kupper, 13 years ago

Resolution: erledigt
Status: closed → reopened

Okay, wenn ich schon dabei bin...

comment:16 by Rüdiger Kupper, 13 years ago

So.

  1. Das Skript "find-userfiles" ist jetzt harmlos und macht nur, was der Name sagt: Dateien in den Tauschverzeichnissen finden und anzeigen.
  2. 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 Rüdiger Kupper, 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 Rüdiger Kupper, 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 Rüdiger Kupper, 13 years ago

Frage:
Sind 7 Tage "grace period" bei uns angemessen, oder sollten wir die verlängern?

comment:20 by bau, 13 years ago

Ich finde sieben Tage OK. Eine Verlängerung würde glaube ich nichts bringen!

comment:21 by Rüdiger Kupper, 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 :-).

comment:22 by Rüdiger Kupper, 9 years ago

Milestone: unbestimmter Termin

Milestone unbestimmter Termin deleted

Note: See TracTickets for help on using tickets.