Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
23.10.2021, 21:59:39

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
Statistiken
  • Beiträge insgesamt: 759305
  • Themen insgesamt: 61006
  • Heute online: 616
  • Am meisten online: 2287
  • (22.01.2020, 19:20:24)
Benutzer Online

Autor Thema: [gelöst]  bashbefehl du und filtern der Ausgabe: nur Zahlen aber kein du: am Anfang wie?  (Gelesen 468 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Hi,

ich bin gerade ratlos, da ich an der Ausgabe von du mittels grep hänge und nicht weiter komme.

Folgender Befehl:
~$ sudo du -h -d 1 -t 10M --exclude /media / | sort -rn | grep -i ^["1-9"]

soll mir nur die Zeilen ausgeben, die auch mit Zahlen anfangen. Zusätzlich kommen aber ganz am Anfang auch noch solche Meldungen:

du: cannot access '/proc/121099/fdinfo/3': No such file or directory

Diese möchte ich nicht angezeigt bekommen und denke, dass die eigentlich mit grep und der regex ["1-9"] nicht erscheinen dürften.
Aber da habe ich wohl einen Denkfehler.  ;D

Hier mal die komplette Ausgabe:

du: cannot access '/proc/121853/task/121853/fd/4': No such file or directory
du: cannot access '/proc/121853/task/121853/fdinfo/4': No such file or directory
du: cannot access '/proc/121853/fd/3': No such file or directory
du: cannot access '/proc/121853/fdinfo/3': No such file or directory
du: cannot access '/run/user/1000/doc': Permission denied
du: cannot access '/run/user/1000/gvfs': Permission denied
443G /
410G /home
203M /boot
51M /root
31M /etc
18G /usr
8,8G /var
5,1G /snap
1,9G /opt

Mein Versuch daraufhin: Weiteres Rausfiltern mit grep. Da hab ich jetzt schon einiges probiert, z.B.
~$ sudo du -h -d 1 -t 10M --exclude /media / | sort -rn | grep -i ^["1-9"] | grep -i /^["d"]
komme aber auf keinen grünen Zweig.

Nun die Fragen:

1. Wie bekomme ich die mit "du: " beginnenden Zeilen aus der Ausgabe rausgefiltert?
2. Weshalb erscheinen die überhaupt, wenn ich den Befehl mit Rootrechten starte?

« Letzte Änderung: 06.10.2021, 17:27:40 von Mäck »

Die Fehlermeldungen von "du" einfach umleiten (2> /dev/null) funktioniert nicht? 

Die Fehlermeldungen von "du" einfach umleiten (2> /dev/null) funktioniert nicht?
leider nicht:
~$ sudo du -h -d 1 -t 10M --exclude /media / | sort -rn | grep -i ^["1-9"] 2>/dev/null
du: cannot access '/proc/123428/task/123428/fd/4': No such file or directory
du: cannot access '/proc/123428/task/123428/fdinfo/4': No such file or directory
du: cannot access '/proc/123428/fd/3': No such file or directory
du: cannot access '/proc/123428/fdinfo/3': No such file or directory
du: cannot access '/run/user/1000/doc': Permission denied
du: cannot access '/run/user/1000/gvfs': Permission denied
443G /
410G /home
203M /boot
51M /root
31M /etc
18G /usr
8,8G /var
5,1G /snap
1,9G /opt

~ $ sudo du -h -d 1 -t 10M --exclude /media / 2> /dev/null | sort -rn | grep -i ^["1-9"]
310M /boot
21M /sbin
18M /bin
15M /etc
...

Was willst Du denn mit sudo erreichen?

Übrigens: Ob das Sinn macht, die menschenlesbaren Ausgaben (du -h) numerisch zu sortieren (sort -n) wage ich zu bezweifeln.

Das "sudo" vermeidet Fehlermeldungen wg. fehlender Rechte. sudo du -mxd1 -t 10m / |sort -rn ?
-x: Verzeichnisse auf anderen Dateisystemen überspringen
-m: Ausgabe in MB (führt zu ordentlicher Sortierung)
« Letzte Änderung: 06.10.2021, 17:19:35 von aexe »

~ $ sudo du -h -d 1 -t 10M --exclude /media / 2> /dev/null | sort -rn | grep -i ^["1-9"]
[/quote]
Super, danke @ZeckeSZ
« Letzte Änderung: 06.10.2021, 17:23:38 von Mäck »

Mit sort -rh werden auch die Giga und Mega richtig sortiert.

Was willst Du denn mit sudo erreichen?

Das was aexe hier erwähnt hat:

Das "sudo" vermeidet Fehlermeldungen wg. fehlender Rechte.


Übrigens: Ob das Sinn macht, die menschenlesbaren Ausgaben (du -h) numerisch zu sortieren (sort -n) wage ich zu bezweifeln.
Das ist zweifelsohne wahr :-)

sudo du -mxd1 -t 10m / |sort -rn ?
-x: Verzeichnisse auf anderen Dateisystemen überspringen
Das verstehe ich nicht wirklich. Ist hier /proc gemeint?

"sudo" vermeidet Fehlermeldungen
Die werden doch sowieso umgeleitet, wenn du also nicht auf die Ausgabe von /root angewiesen bist, kannst du das "sudo" auch weglassen.

Das verstehe ich nicht wirklich. Ist hier /proc gemeint?
Probier es halt aus.
« Letzte Änderung: 06.10.2021, 17:32:32 von aexe »

Danke Euch allen. Ich setze dann mal auf "gelöst"

Nachtrag: gäbe es trotzdem eine Möglichkeit, die Fehlermeldungen wegzugrepen, statt das mit 2>/dev/null zu lösen?

Ja
user@p51s-lmde:~$ sudo du -mxd1 -t 10m / |sort -rn
8273 /
4626 /usr
1243 /var
977 /home
778 /lib
460 /opt
142 /boot
20 /sbin
17 /bin
14 /etc
Oder noch hübscher: user@p51s-lmde:~$ sudo du -hxd1 -t 10m / |sort -rh
8,1G /
4,6G /usr
1,3G /var
977M /home
778M /lib
460M /opt
142M /boot
20M /sbin
17M /bin
14M /etc