ncdu – Übersichtliche Festplattenbelegung

Ab und an kommt es zu dem Problem, dass die Speicherkapazität der Festplatte erschöpft ist. Selbst zu heutigen Zeiten, in denen man mehrere Multi-GB Festplatten im System eingebunden hat. Das waren noch Zeiten, als ich damals mit 2x 80 MB Fetsplatten (richtig gelesen: Megabyte!!) der Held der Schule war ;).

Das erste was man dann normalerweise tut, ist einen Überblick zu verschaffen, welches die größten Platzverschwender sind.
In der GUI sind Programme wie Baobab (Gnome), Filelight (KDE) und wie sie alle heißen, optimal. Dort wird die Festplattenbelegung grafisch dargestellt, so dass man sofort sieht, welches Verzeichnis den meisten Platz in Anspruch nimmt.

Bei Servern, die in der Regel ohne GUI auskommen, wird oft das Standard Tool “du” (disk usage) verwendet.
Wer das Programm kennt, wird mir zustimmen, dass es nicht sehr übersichtlich ist.

Letztens bin ich dann über das Programm “ncdu” gestolpert. War ich doch überrascht, wie übersichtlich die Ordnerstruktur nach Größe sortiert wird.

Das Programm bietet auch die Möglichkeit, Dateien und Verzeichnisse direkt zu löschen, ohne dass man mit einer zweiten Konsole den Löschvorgang einleitet.

Gestartet wird das Programm in dem Verzeichnis, von dem man die Festplattenbelegung auslesen möchte,

ncdu

oder gibt das Verzeichnis im Befehl mit an.

ncdu /home/

Jetzt öffnet sich ein Fenster mit den ausgelesenen Verzeichnissen. Mithilfe der Pfeiltasten kann man sich jetzt in der Baumstruktur bewegen.

Wenn jetzt z.B. ein Verzeichnis darin befindet, deren Daten man löschen möchte, bewegt man die Auswahl zu dem genannten Verzeichnis und drückt die Taste “d”. Das Verzeichnis mitsamt den Dateien wird nun gelöscht.

Es gibt noch mehrere dieser Befehlstasten. “n” sortiert nach Dateiname, “s” nach der Größe der Verzeichnisse, usw…

In der Manpage stehen noch mehr dieser Befehlstasten.

man ncdu

Mir hat dieses Tool sehr geholfen, wieder Ordnung zu schaffen!

Seid gegrüßt.
Alf

Flattr this!

Berechtigungen schnell ändern (Ordner und Dateien)

Hallo Leute,

heute ist es mir passiert, ich wollte eigentlich nur kurz die Berechtigung eines Ordners auf 777 ändern, habe aber in meiner Schusseligkeit folgenden Befehl ausgehührt:

chmod -R 777

das ist natürlich alles andere als Optimal, gerade wenn es sich bei dem Ordner um eine WordPress Instanz handelt :D – nicht dieser Blog, keine Sorge :D

Da es unter Linux keinen “Zurück” Button gibt und ich natülich nicht jeden Ordner und jede Datei einzeln bearbeiten möchte gibt es hier einen kleinen Trick wenn ihr mal bei viele Datein und Ordner gleichzeitg die Berechtigung ändern müsst:

find /srv/vhosts/wordpress-instanz -type f -print0 | xargs -I {} -0 chmod 0644 {}

Dieser Befehl ändert die Berechtigung aller Datein in dem Verzeichnis “/srv/vhosts/wordpress-instanz” sowie deren Unterordneren auf 664.

find /srv/vhosts/wordpress-instanz -type d -print0 | xargs -I {} -0 chmod 0755 {}

der Zweite Befehl sucht alle Ordner und Unterordner und änderte die Berechtigung auf 755.

Zum Einsatz kommt einfach der “find” Befehl (hier von Alf näher erläutert) und wird dann mit “xargs” weiterverarbeitet.

Innerhalb von wenigen Sekunden war somit mein blöder Fehler wieder behoben und alles war beim Alten, hoffe wir mal nicht das mir das “-R” bei einem “rm” Befehl reinrutscht :)

peace
LEWIS

Flattr this!

Viele Datein löschen, der schnellste Weg

Hallo Leute,

hin und wieder muss man Ordner mit unzähligen Dateien löschen, in meinem aktuellen Fall hatte ich einen Ordner mit über 450.000 Dateien.

Zu Beginn hatte ich mir nicht viel dabei gedacht und machte wie gewohnt:

rm -f *

Das Problem kam nach ca. 13 Minuten:

-bash: /bin/rm: Argument list too long

rm konnte nicht so viele Dateien löschen, noch dazu war rm sehr langsam dabei. Am Ende waren noch mehr als die Hälfte der Datein vorhanden.

Ich beschloss also einen Test aufzustellen um zu schauen, mit welchem Befehl man 450.000 Dateien am schnellste löschen kann.

Ich erstelle also 450.000 kleine Dateien zum testen:

for i in $(seq 1 450000); do echo hello world >> $i.txt; done

danach probierte ich folgende Methoden:

  • rm (mit Fehler abgebrochen)
  • find ./ -type f -exec rm {} \; (ca. 12 Minuten)
  • find ./ -type f -delete (ca. 4 Minunten)
  • rsync -a –delete blankdir/ testdir/ (ca 3 Minuten)

Der schnellste Weg viele Dateien auf einmal zu löschen ist also rsync! Wer hätte das gedacht :)

Beim nächsten Mal verwendet also rsync wenn ihr viele Dateien entsorgen müsst.

peace
LEWIS

Flattr this!