Dateigröße von Verzeichnis summieren

Warum Debian? Was muss ich vorher wissen? Wo geht's nach der Installation weiter?
rodeoric
Beiträge: 30
Registriert: 23.12.2019 15:02:54

Dateigröße von Verzeichnis summieren

Beitrag von rodeoric » 22.06.2020 21:07:31

Hallo,

nach langer Zeit habe ich mit einem Problem wieder hier her gefunden.

Ich möchte per bash script in regelmäßigen Abständen die Filesize eines Ordners summieren und ausgeben lassen. Ich bekomme den Command aber irgendwie nicht korrekt zusammen.

Mein Ordner hat exakt: 789.187.583.427 Bytes

Code: Alles auswählen

ls -lnH --block-size=1MB /home/folder | grep -v '^d' | awk '{total += $5} END {print total, "Total /folder_size"}' >> $LOG_SIZE_ALL
Bringt mir folgenden Output "789204 Total /folder-size" - Mir unerklärlich selbst mit Aufrunden

Dann habe ich folgendes probiert in sämtlichen Variationen

Code: Alles auswählen

ls -lnH --block-size=1000MB /home/folder | grep -v '^d' | awk '{total += $5} END {print total, "Total /folder_size"}' >> $LOG_SIZE_ALL
Bringt mir folgenden Output "803 Total /folder-size" - Mir völlig unerklärlich

Code: Alles auswählen

ls -lnH --block-size=1000GB /home/folder | grep -v '^d' | awk '{total += $5} END {print total, "Total /folder_size"}' >> $LOG_SIZE_ALL
Bringt mir folgenden Output "32000 Total /folder-size" - Mir völlig unerklärlich

Ich habe noch ungefähr 30 weitere Kombinationen durchprobiert, komme aber einfach nicht zum Ziel. Das einzige das klappt ist die Ausgabe in Byte wie folgt:

Code: Alles auswählen

ls -nR /home/folder | grep -v '^d' | awk '{total += $5} END {print total, "Total /folder_size"}' >> $LOG_SIZE_ALL
Bringt mir folgenden Output "789187583427 /folder-size" - Aber eben nur in Byte, ich hätte gern GB.

Meine Rechnung zum korrekten Ergebnis wäre daher:
789187583427 / 1000000000 = 789,187583427 - Da wäre mir ein einfaches schneiden auf 2 Nachkommastellen sehr recht. Wunschergebnis wäre daher: 789,18 GB /folder-size

Jemand eine Idee wo mein Fehler liegt ?

Vielen Dank vorab!

Lg
rodeoric

cronoik
Beiträge: 1985
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Dateigröße von Verzeichnis summieren

Beitrag von cronoik » 22.06.2020 21:35:26

Kurze Frage bevor ich mir das spaeter mal ansehen kann, warum nimmst du nicht

Code: Alles auswählen

du -sh /home/folder
?
Hilf mit unser Wiki zu verbessern!

rodeoric
Beiträge: 30
Registriert: 23.12.2019 15:02:54

Re: Dateigröße von Verzeichnis summieren

Beitrag von rodeoric » 22.06.2020 21:41:40

cronoik hat geschrieben: ↑ zum Beitrag ↑
22.06.2020 21:35:26
Kurze Frage bevor ich mir das spaeter mal ansehen kann, warum nimmst du nicht

Code: Alles auswählen

du -sh /home/folder
?
Danke für deine Rückmeldung. Das habe ich auch schon probiert in einer meiner Varianten. Das liefert mir folgenden Output.
735G /home/folder

Ich habe keine Ahnung, da wird mit der falschen Größe gerechnet und ich würde gern, wenn die Rechnung stimmt, gern einen Output mit Text haben.
Bspw. sowas hier: 789G befinden sich in /home/folder

Lg
rodeoric

cronoik
Beiträge: 1985
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Dateigröße von Verzeichnis summieren

Beitrag von cronoik » 22.06.2020 22:01:18

Ah, du hast hier glaube ich einen Annahmefehler. Man rechnet ueblicherweise mit 1024 und nicht mit 1000 als Umrechnungsfaktor aufgrund der Zweierpotenz. Wenn du gern 1000 nehmen willst:

Code: Alles auswählen

du -s --si /home/folder
Hilf mit unser Wiki zu verbessern!

rodeoric
Beiträge: 30
Registriert: 23.12.2019 15:02:54

Re: Dateigröße von Verzeichnis summieren

Beitrag von rodeoric » 22.06.2020 22:08:38

cronoik hat geschrieben: ↑ zum Beitrag ↑
22.06.2020 22:01:18
Ah, du hast hier glaube ich einen Annahmefehler. Man rechnet ueblicherweise mit 1024 und nicht mit 1000 als Umrechnungsfaktor. Wenn du gern 1000 nehmen willst:

Code: Alles auswählen

du -s --si /home/folder
Servus,

habe ich gerade ausprobiert.

Das gibt mir als Output "790G /home/folder" - Gefällt mir

Vielleicht hast auch noch eine Idee für nachfolgende Fragen ?

1. Lässt sich das auch noch auf 789,18G ausgeben
2. Eventuell statt dem "/home/folder" einen benutzerdefinierten Text eingeben ? Bspw. xxxG befinden sich in folgendem Ordner
3. Wie würde der Command für MB als Ausgabe lauten
4. Was bedeutet "-s --si" für mich zum Verständnis ?

Aber ich bin schon einen großen Schritt weiter Dank Dir :D da hätte ich mir die letzten 2,5 Stunden rumbrobieren sparen können :hail:

Lg
rodeoric

MSfree
Beiträge: 5800
Registriert: 25.09.2007 19:59:30

Re: Dateigröße von Verzeichnis summieren

Beitrag von MSfree » 22.06.2020 22:23:36

rodeoric hat geschrieben: ↑ zum Beitrag ↑
22.06.2020 22:08:38
3. Wie würde der Command für MB als Ausgabe lauten
du -s --block-size=1000000
4. Was bedeutet "-s --si" für mich zum Verständnis ?

Code: Alles auswählen

man du
und

Code: Alles auswählen

du --help
werden es dir erklären ;)

Benutzeravatar
Meillo
Moderator
Beiträge: 5860
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Dateigröße von Verzeichnis summieren

Beitrag von Meillo » 23.06.2020 00:17:14

`-m' liefert dir den Wert in MB.

Die Ausgabe textuell umformen kannst du mit sed(1). Wenn du den Zahlwert auch noch beliebig runden willst, kannst du awk(1) verwenden.
Use ed(1) once in a while!

rodeoric
Beiträge: 30
Registriert: 23.12.2019 15:02:54

Re: Dateigröße von Verzeichnis summieren

Beitrag von rodeoric » 23.06.2020 06:53:32

Hallo,

an beide vielen Dank für eure Rückmeldung.

@Meillo, könntest Du mal ein Beispiel machen mit sed und awk ?

Das andere schaue ich mir an. Vielen Danke schon mal <3

Lg
rodeoric

MSfree
Beiträge: 5800
Registriert: 25.09.2007 19:59:30

Re: Dateigröße von Verzeichnis summieren

Beitrag von MSfree » 23.06.2020 08:00:04

Meillo hat geschrieben: ↑ zum Beitrag ↑
23.06.2020 00:17:14
`-m' liefert dir den Wert in MB.
Nicht ganz, -m liefert den Wert in MiB und entspricht --block-size=‭1048576:wink:
könntest Du mal ein Beispiel machen mit sed und awk ?

Code: Alles auswählen

du -s --blocksize=1000 | awk '{printf "%.2f",$1/1000}'

rodeoric
Beiträge: 30
Registriert: 23.12.2019 15:02:54

Re: Dateigröße von Verzeichnis summieren

Beitrag von rodeoric » 23.06.2020 13:02:36

MSfree hat geschrieben: ↑ zum Beitrag ↑
23.06.2020 08:00:04
Meillo hat geschrieben: ↑ zum Beitrag ↑
23.06.2020 00:17:14
`-m' liefert dir den Wert in MB.
Nicht ganz, -m liefert den Wert in MiB und entspricht --block-size=‭1048576:wink:
könntest Du mal ein Beispiel machen mit sed und awk ?

Code: Alles auswählen

du -s --blocksize=1000 | awk '{printf "%.2f",$1/1000}'
Vielen Dank,

probiere ich später aus.

:THX: :THX: :THX:

rodeoric
Beiträge: 30
Registriert: 23.12.2019 15:02:54

Re: Dateigröße von Verzeichnis summieren

Beitrag von rodeoric » 23.06.2020 18:40:56

rodeoric hat geschrieben: ↑ zum Beitrag ↑
23.06.2020 13:02:36
MSfree hat geschrieben: ↑ zum Beitrag ↑
23.06.2020 08:00:04
Meillo hat geschrieben: ↑ zum Beitrag ↑
23.06.2020 00:17:14
`-m' liefert dir den Wert in MB.
Nicht ganz, -m liefert den Wert in MiB und entspricht --block-size=‭1048576:wink:
könntest Du mal ein Beispiel machen mit sed und awk ?

Code: Alles auswählen

du -s --blocksize=1000 | awk '{printf "%.2f",$1/1000}'
Vielen Dank,

probiere ich später aus.

:THX: :THX: :THX:
du -s --blocksize=1000 /home/folder | awk '{printf "%.2f",$1/1000}'
Fehler korrigiert --block-size=1000

Code: Alles auswählen

du -s --block-size=1000000 /home/folder | awk '{printf "%.2f",$1/1000}' >> $LOG_ALL
Nun habe ich hier noch 2 Probleme, zum einen fehlt mir mein Wunschtext hinter der Ausgabe und ganz seltsam, wenn ich den Befehl mehrmals untereinander schreibe, gibt er mir den Output alles in einer Zeile ? :roll:

Jemand eine Idee warum ?

MSfree
Beiträge: 5800
Registriert: 25.09.2007 19:59:30

Re: Dateigröße von Verzeichnis summieren

Beitrag von MSfree » 23.06.2020 19:12:31

rodeoric hat geschrieben: ↑ zum Beitrag ↑
23.06.2020 18:40:56
Nun habe ich hier noch 2 Probleme, zum einen fehlt mir mein Wunschtext hinter der Ausgabe und ganz seltsam, wenn ich den Befehl mehrmals untereinander schreibe, gibt er mir den Output alles in einer Zeile ? :roll:
Einen Zeilevorschub kannst du in dem Formatstring von awk unterbringen, in dem du vor das endende doppelte Gänsefüßchen \n schreibst.

Code: Alles auswählen

du -s --block-size=1000000 /home/folder | awk '{printf "%.2f mir fehlt der Wunschtext\n",$1/1000}'

rodeoric
Beiträge: 30
Registriert: 23.12.2019 15:02:54

Re: Dateigröße von Verzeichnis summieren

Beitrag von rodeoric » 23.06.2020 19:29:54

MSfree hat geschrieben: ↑ zum Beitrag ↑
23.06.2020 19:12:31
rodeoric hat geschrieben: ↑ zum Beitrag ↑
23.06.2020 18:40:56
Nun habe ich hier noch 2 Probleme, zum einen fehlt mir mein Wunschtext hinter der Ausgabe und ganz seltsam, wenn ich den Befehl mehrmals untereinander schreibe, gibt er mir den Output alles in einer Zeile ? :roll:
Einen Zeilevorschub kannst du in dem Formatstring von awk unterbringen, in dem du vor das endende doppelte Gänsefüßchen \n schreibst.

Code: Alles auswählen

du -s --block-size=1000000 /home/folder | awk '{printf "%.2f mir fehlt der Wunschtext\n",$1/1000}'
Awesome, das war des Rätsels Lösung :D

Ist es auch möglich den Command anzupassen das ein Output wie folgt rauskommt ?

Hier befinden sich xxx GB an Dateien ?

Code: Alles auswählen

du -s --block-size=1000000 /home/folder | awk '{In diesem Verzeichnis befinden sich printf "%.2f GB\n",$1/1000}' >> $LOG_ALL
Das klappt irgendwie nicht :D da kommt Syntax Fehler, hast Du dafür auch noch eine Lösung an der Hand ?

:hail:

MSfree
Beiträge: 5800
Registriert: 25.09.2007 19:59:30

Re: Dateigröße von Verzeichnis summieren

Beitrag von MSfree » 23.06.2020 19:37:42

rodeoric hat geschrieben: ↑ zum Beitrag ↑
23.06.2020 19:29:54

Code: Alles auswählen

du -s --block-size=1000000 /home/folder | awk '{In diesem Verzeichnis befinden sich printf "%.2f GB\n",$1/1000}' >> $LOG_ALL
Das klappt irgendwie nicht :D
Kein Wunder:

Code: Alles auswählen

du -s --block-size=1000000 /home/folder | awk '{printf "In diesem Verzeichnis befinden sich %.2f GB\n",$1/1000}' >> $LOG_ALL
Für awk gibt es übrigens eine gute Anleitung, die du mit man awk auf der Kommandozeile aufrufen kannst. man steht hier für Manual=Anleitung und das Zweite Wort für den Befehl, für den du Hilfe brauchst.

rodeoric
Beiträge: 30
Registriert: 23.12.2019 15:02:54

Re: Dateigröße von Verzeichnis summieren

Beitrag von rodeoric » 23.06.2020 19:53:24

MSfree hat geschrieben: ↑ zum Beitrag ↑
23.06.2020 19:37:42
rodeoric hat geschrieben: ↑ zum Beitrag ↑
23.06.2020 19:29:54

Code: Alles auswählen

du -s --block-size=1000000 /home/folder | awk '{In diesem Verzeichnis befinden sich printf "%.2f GB\n",$1/1000}' >> $LOG_ALL
Das klappt irgendwie nicht :D
Kein Wunder:

Code: Alles auswählen

du -s --block-size=1000000 /home/folder | awk '{printf "In diesem Verzeichnis befinden sich %.2f GB\n",$1/1000}' >> $LOG_ALL
Für awk gibt es übrigens eine gute Anleitung, die du mit man awk auf der Kommandozeile aufrufen kannst. man steht hier für Manual=Anleitung und das Zweite Wort für den Befehl, für den du Hilfe brauchst.
Ai okay :D

Ich probiere :D

Vielen Danke :THX: :THX: :THX:

Antworten