thomsens
Goto Top

Gesamtgröße aller gefundenen Daten -find-

Hallo,

ich moechte die Gesamtgroesse aller, von einem User erstellen Daten mit der "bash" ermitteln.

Dazu gebe ich folgendes ein:

find / -user username -exec du -hs {} \;

Als Ausgabe erscheinen dann alle gefundenen Daten des Benutzers "username" mit Datengröße durch (-exec du -hs {} \;).

Ich haette aber als Ausgabe gerne eine Summe aller Datengrößen, bsp. 36GByte.

Hat jemand eine Idee?

Viele Gruesse Thomsens

Content-Key: 136166

Url: https://administrator.de/contentid/136166

Printed on: April 16, 2024 at 11:04 o'clock

Member: Raven42
Raven42 Feb 17, 2010 at 13:45:14 (UTC)
Goto Top
Versuch es mal hiermit:

find / -user username | du -c
Member: thomsens
thomsens Feb 17, 2010 at 14:14:38 (UTC)
Goto Top
Leider nein. Damit hatte ich angefangen. Aber an der Stelle wird der Befehl "du" nicht richtig interpretiert. Er listet immer die Groesse des "pwd". Egal welcher Benutzer welche Datei erstellt hat.

Beispiel:

"du -c" liefert immer den gleichen Wert wie "find / -user username | du -c"
Member: Raven42
Raven42 Feb 17, 2010 at 15:00:02 (UTC)
Goto Top
Stimmt, kannst Du aber mit xargs umgehen:

find / -user username | xargs du -ch
Member: thomsens
thomsens Feb 17, 2010 at 16:30:06 (UTC)
Goto Top
Hi, bitte einmal ausprobieren. Es funktioniert nicht mit "xargs". "du" liefert falsche Werte zurueck und spuckt bei einigen Benutzern dutzdend Fehlermeldungen aus. Aber die Idee war gut.

Thomsens
Member: Raven42
Raven42 Feb 17, 2010 at 16:40:53 (UTC)
Goto Top
Hab ich ausprobiert, allerdings nicht ab /

Kann es sein, das die Fehlermeldungen von Dateien kommen, die ein - o.ä. enthalten?
Dann schreib noch 2 Bindestriche dahinter, dann weiß der 'du'-Befehl, jetzt kommen keine Optionen mehr.

Also so:
find / -user username | xargs du -ch --
Mitglied: 6890
6890 Feb 17, 2010 at 19:31:05 (UTC)
Goto Top
Hi,

probier doch mal
find ./ -user username -exec du -hc +
den mit dem "+" werden alle argumente die find findet mit einmal übergeben und nicht jedes einzeln wie bei -exec du -hs \;

mfg
Member: thomsens
thomsens Feb 18, 2010 at 13:05:51 (UTC)
Goto Top
Danke für die Tipps. Ich habe einiges probiert. Der Befehl:

1. find /mnt -user username | xargs du -ch --

Liefert nicht die richtigen Werte. Bei komplizierten und vielen Daten der Nutzer erhalte ich die Fehlermeldung:

"du: cannot access"

2. find /mnt -user username -exec du -hc {} +

Das ist schon ein ganzes Stück besser. Haben die Nutzer wenige Daten liefert mir der Befehl den richtigen Wert. Bei vielen Daten kommt die Meldung:
"du: Argument list is too long"
Und das Ergebnis ist dann falsch.

Dann hatte ich noch:

3. find /mnt -user username -exec xargs du -hc {} +

Das führt leider zu gar keinem Ergebnis.

Vielleicht hat jemand noch eine Idee.

Thomsens