FAQ:Arktur4/UserDateien: Unterschied zwischen den Versionen

Aus Delixs
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: == Alle Dateien eines Nutzers ermitteln == '''Frage:''' Seitdem wir Quota eingeschaltet haben können etliche Schüler irgendwann nicht mehr auf dem Server speichern...)
 
(frei)
Zeile 1: Zeile 1:
__NOTOC__
{{Frei}}
== Alle Dateien eines Nutzers ermitteln ==
== Alle Dateien eines Nutzers ermitteln ==



Version vom 31. März 2008, 13:47 Uhr

Frei Seite wird nicht gesperrt: Hier können mitarbeitswillige Autoren ihre Artikel und Ergänzungen einbringen. Wenn Sie mitarbeiten wollen, dann können Sie dafür jederzeit einen Account beantragen. Schreibrecht in dieser Dokumentation haben nur eingetragene Nutzer.


Alle Dateien eines Nutzers ermitteln

Frage:

Seitdem wir Quota eingeschaltet haben können etliche Schüler irgendwann nicht mehr auf dem Server speichern. Das Löschen von Dateien im eigenen home-Verzeichnis hilft in der Regel. Allerdings haben wohl einige Dateien weitergegeben oder im tmp-Verzeichnis gespeichert, so dass dies mitunter nicht ausreicht und die Schüler wissen es oft nicht mehr (oder wollen es nicht).

Mit welchem Befehl kann ich alle Dateien eines Schülers incl. Verzeichnisnamen auflisten?

Antwort:

Kurzfassung:

 cd /home && find . -uid $(id -u username)

Scriptfassung:

Unten findest Du ein Beispiel-Script. Abspeichern, ausführbar machen mit chmod +x und gut ist.

Wenn Du in der temporären Datei, die Pfade gemäß, Deiner logon.bat änderst, kannst Du die Datei auch gleich dem user mailen :-)


 #!/bin/sh
 usage () {
 echo -n "usage: "
 echo -n `basename $0`
 echo " Benutzer"
 echo
 echo "Das Script ermittelt alle Dateien des Benutzers &"
 echo "speichert sie nach Grösse sortiert in einer"
 echo "temporären Datei."
 }
 if [ "$#" -ne 1 ] ; then
   usage
   exit 0
 fi
 getent passwd $1 1>/dev/null
 RET=$?
 if [ "$RET" -gt 0 ] ; then
   echo "Benutzer $1 existiert nicht!"
       echo "Kann gewählte Aktion nicht ausführen"
       exit 1
 fi
 T=`mktemp -t "$1"XXXXXX`
 find /home/ -xdev -type f -user $1 -exec stat --printf="%s\t%n\n" {} \; >>$T
 sort -gr --key=1 "$T" > "$T"s
 rm "$T"
 echo -n "Nach Größe sortiert, findest Du die Dateien von $1 in: "
 echo "$T"s
 echo
 echo "Die 10 größten werden jetzt angezeigt:"
 head -n10 "$T"s
 echo -n "Nicht vergessen: Du solltest "; echo -n "$T"s;echo " löschen :-)"


-- aus einer Mail von Harry J.



zurück | Hauptseite