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...)
 
(kat)
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
__NOTOC__
{{Archiv}}
== Alle Dateien eines Nutzers ermitteln ==
== Alle Dateien eines Nutzers ermitteln ==


Zeile 67: Zeile 71:
----
----
<div align="right">[[FAQ:Arktur4|zurück]] | [[Hauptseite]]</div>
<div align="right">[[FAQ:Arktur4|zurück]] | [[Hauptseite]]</div>
[[Kategorie:ArchivArktur40]]

Aktuelle Version vom 16. März 2012, 13:20 Uhr


Baustelle Archiv: Dieser Artikel beschreibt nicht die Funktionalität des derzeit aktuellen delixs-Servers. Er beschreibt ältere Schulserver-Funktionen und dient dem Zweck der Archivierung.


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