Gruppe 1-c: Das System entrümpeln
Überall Karteileichen...?
Sie werden es sicherlich schon mal erlebt haben: Insbesondere wenn Sie einen
neuen Systemkern einspielen, stellen Sie fest, daß der Plattenplatz unter
schleichender Schwindsucht leidet.
Schuld daran ist, daß sich alte (und meistens nicht mehr benötigte) Dateien im
System ansammeln und so zusehends Speicherplatz blockieren. Dabei sind alte
Systemkerne noch das kleinste Problem, da Debian lediglich eine einzige
Vorgängerversion behält und alles andere automatisch rauswirft, sowie ein neuer
Kernel installiert wird. Dies spart auf jeden Fall schon mal Speicherplatz, und
wenn mit dem neuen Kernel irgendetwas schiefläuft, hat man immer noch einen
funktionierenden Systemkern, mit dem sich das System wieder starten läßt.
Will man hier noch etwa ein halbes Gigabyte freiräumen, kann man diesen
selbstverständlich auch loswerden, dann sollten Sie sich jedoch unbedingt
vergewissert haben, daß der neue Kern einwandfrei funktioniert!
Im Gegensatz zu Systemkernen sind andere Kandidaten weitaus lästiger: Nicht
mehr benötigte Konfigurationsdateien, installierte, aber nicht mehr benötigte
Pakete, Backupdaten, Coredumps – so sie denn zugelassen sind – und temporäre
Dateien sorgen für zusätzliche Schwindsucht beim freien Plattenplatz, wenn man
sie nicht regelmäßig beseitigt.
Alte Systemkerne ausmisten
Dieses Problem löst sich unter Debian i. d. R. sehr elegant von alleine, und selbst wenn Sie den Vorgängerkernel loswerden wollen, so genügt hier ein einfacher Befehl aus, um die Arbeit getan zu bekommen:
Hier ist eine genaue Kenntnis des Versionsbezeichners vonnöten, damit Sie das
richtige Paket zu fassen bekommen, aber wenn Sie es sich hier einfacher machen
wollen, so rufen Sie einfach das Programm aptitude
auf und suchen dann nach dem fraglichen Systemkern.
Mit CTRL-/ rufen Sie den Dialog für die Paketsuche
auf, in den sie einfach linux-image eingeben. Dann
können Sie mit CTRL-n und
CTRL-N vor- respektive rückwärts suchen.
Haben Sie das gesuchte Paket gefunden, brauchen Sie es nur noch mittels Druck
auf die Minustaste abwählen, zweimal auf G drücken, und Aptitude erledigt den
Rest.
Wenn Sie neben dem Systemkern für Linux auch noch einen Hypervisor (beispielsweise Xen) verwenden, so brauchen Sie sich darum keinerlei Gedanken zu machen: Immer wenn eine Aktualisierung einen neuen Hypervisor instelliert, so wird die alte Version ersatzlos gelöscht, belegt also keinen zusätzlichen Plattenplatz.
nach obenDubletten von Konfigurationsdateien loswerden
Dies führt zwar nicht unbedingt zu Platzverschwendung auf dem Rechner, aber man
kann dennoch schnell die Übersicht verlieren. Wenn bestimmte Pakete
aktualisiert werden, so kann es passieren, daß entweder eine neue Datei mit dem
Zusatz .dpkg-dist angelegt wird, oder aber es wird
die alte Datei gesichert (es wird einfach .dpkg-old
angehängt) und anschließend eine neue Version angelegt.
Doch egal wie herum das passiert, Sie haben hinterher zwei Versionen derselben
Datei auf Platte herumfliegen.
Prädestiniert für dieses Chaos ist das Verzeichnis /etc,
in das die Konfigurationsdateien normalerweise geschrieben werden. Jedes
Programm, für das man Einstellungen vornehmen kann, wird irgendwo eine
Konfigurationsdatei anlegen, und die Wahrscheinlichkeit ist, von wenigen
Ausnahmen einmal abgesehen, sehr hoch, daß sie hier oder in einem der hiesigen
Unterverzeichnisse landet.
Allerdings gilt dies nicht per se für Programme, die z. B. unter einem der
möglichen Windowmanager (KDE, Gnome, Xfce, etc.) laufen, da deren
Konfigurationsdateien i. d. R. in einem Unterverzeichnis von
/etc liegen. Hier schafft folgender Befehl Abhilfe:
Damit schaffen Sie sich diese Dubletten auf sehr elegante Art und Weise vom
Hals, und Sie behalten den Überblick.
Im Falle einer neuen Datei empfiehlt es sich jedoch, sich zuvor beide Versionen
anzuschauen, um nachvollziehen zu können, welche Änderungen vorgenommen worden
sind, damit Sie diese ggf. fusionieren können (das bedeutet auch, entfallene
Parameter aus der von Ihnen verwendeten Datei zu löschen).
Beachten Sie: Dieser Befehl löscht die Dateien ohne jedwede Form der Rückfrage! Sie sollten absolut sicher sein mit dem, was Sie hier tun!
nach obenBackupdateien löschen
Diese sind i. d. R. sehr schnell durch ein angehängtes
.old, .bak oder
.backup respektive eine angehängte Tilde (also ~)
zu erkennen. Diese entstehen meist, wenn Sie irgendeine Datei bearbeiten und
dann abspeichern.
Sinn und Zweck der Backups ist, daß man eine Sicherungskopie für den Fall hat,
daß irgendetwas mit der gerade bearbeiteten Version schiefläuft und diese so
nicht mehr zu gebrauchen ist – doch wenn sie nicht mehr benötigt wird, weil man
beispielsweise die Arbeiten an besagter Datei abgeschlossen hat, so kann man
sie genauso gut löschen.
Je nach Umfang der bearbeiteten Dateien kann natürlich ein erkleckliches
Sümmchen an Platz zusammenkommen, das so blockiert wird. Löschen Sie solche
Dateien wie mit der oben beschriebenen Methode, nur
müssen Sie die verwendeten Bezeichner durch solche ersetzen, die zu den zu
löschenden Dateien passen, z. B. rm *~ für Dateien,
an deren Namen eine Tilde angehängt wurde.
Seien Sie extrem vorsichtig, wenn Sie mittels
rm -rf * oder ähnlichem die Axt
an irgendwelche Dateien legen!
Dies löscht sowohl sämtliche Dateien in dem aktuellen Verzeichnis als auch
alles in etwa vorhandenen Unterverzeichnissen!
Wenn Sie dies in einem kritischen Verzeichnis ausführen, so laufen Sie Gefahr,
daß Ihr System augenblicklich unbrauchbar wird!
Das einzige Problem, das sich hier ergibt, ist, daß Backupdateien so ziemlich in jedem Verzeichnis zu liegen kommen können, auf das Sie Zugriff haben. Als normaler Nutzer ist dies lediglich auf Ihr Homeverzeichnis und die zugehörigen Unterverzeichnisse beschränkt, doch als Superuser haben Sie Zugriff auf den kompletten Verzeichnisbaum. Dementsprechend ergeben sich gleich viel mehr Orte, an denen sich Backupdateien befinden können. Hier gilt es dann, sämtliche Verzeichnisse systematisch abzugrasen:
Dieser Befehl grast den kompletten Verzeichnisbaum nach irgendwelchen Backupdateien ab und löscht diese. Somit ersparen Sie sich die lästige manuelle Suche nach diesen Dateien, und statt umständlich von einem Verzeichnis ins andere zu wechseln, übernimmt find diese Aufgabe für Sie.
nach obenTemporäre Dateien ausmisten
Dies ist ein weiteres großes Ärgernis, da temporäre Dateien eine Menge Platz
blockieren können. Leider arbeiten Programme nicht immer sauber, so daß oftmals
temporäre Daten auf der Platte zurückbleiben, oder aber ein Programm stürzt ab
und kann die temporären Daten nicht mehr loswerden.
In diesem Fall muß man nachhelfen und die temporären Daten eben manuell
löschen.
Seien Sie vorsichtig, wenn Sie diese Daten im laufenden Betrieb des Systems löschen! Da sie von diversen Prozessen benötigt werden, ist es hilfreich, dies erst mit dem Herunterfahren des Systems zu tun, da alles, was auf diese temporären Daten angewiesen ist, sonst möglicherweise nicht mehr richtig funktioniert!
Um diesen Löschvorgang zu automatisieren, gehen Sie wie folgt vor:
- Öffnen Sie eine Textkonsole.
- Melden Sie sich als root an.
- Wechseln Sie in das Verzeichnis /etc.
- Laden Sie die Datei rc.local in Ihren Editor. Anfangs wird sie lediglich beim Systemstart aufgerufen (hier mit dem Parameter start), von daher ist nach den getätigten Veränderunge noch eine Anpassung vonnöten, dami ein Aufruf auch beim Herunterfahren erfolgt.
- Erzeugen Sie, so noch nicht geschehen, eine Fallunterscheidung: Legen Sie einen case-Block an (s. u.) und fügen Sie die Befehle, die während des Systemstarts ausgeführt werden, in den mit start) eingeleiteten Block.
- Fügen Sie folgenden Befehl in en mit stop)
eingeleiteten Block ein: rm -rf /tmp/*
ACHTUNG: Geben Sie niemals das Verzeichnis /tmp direkt an, da dieses sonst ebenfalls dem Löschbefehl zum Opfer fällt! Deshalb sind sowohl der Schrägstrich als auch der Stern am Ende zwingend erforderlich, da so an den Dateien und Verzeichnissen, die in /tmp liegen, angesetzt wird!- Speichern Sie ab und verlassen Sie den Editor.
- Wechseln Sie in das Verzeichnis /lib/systemd/system.
- Erzeugen Sie ein Unterverzeichnis mit dem Namen rc-local.service.d.
- Erzeugen sie eine Datei mit folgendem Namen in ihrem Editor: service-stop.conf
- Schreiben Sie Folgendes in die Datei:
[Service]
ExecStop=/etc/rc.local stop- Speichern Sie ab und verlassen Sie den Editor.
- Rufen Sie folgenden Befehl auf: systemctl daemon-reload
Dies räumt das temporäre Verzeichnis auf, sowie Sie das System herunterfahren. Damit stellen überbordende temporäre Daten kein Problem mehr dar.
Versteckte Dateien loswerden
Diese sind – zumindest als normaler Nutzer – schon etwas lästiger, da sie unter
normalen Umständen nicht in Erscheinung treten, wenn man sich den Inhalt eines
Verzeichnisses anzeigen läßt. Meist handelt es sich um kleine
Konfigurationsdateien, die im Homeverzeichnis des betreffenden Nutzers angelegt
werden und in denen dessen persönliche Einstellungen für verschiedene Programme
gespeichert werden.
Allerdings kann es vorkommen, daß man das eine oder andere Programm, das zuvor
noch Verwendung gefunden hat, aus welchen Gründen auch immer von der Platte
geworfen hat und diese Konfigurationsdateien jetzt ebenfalls loswerden möchte –
oder einfach nur weil man einen schnellen Weg sucht, um die Einstellungen auf
die Grundwerte zurückzusetzen. In beiden Fällen ist das Vorgehen gleich.
Um sich auch etwaige versteckte Dateien und Verzeichnisse anzeigen zu lassen,
führen Sie in der Kommandozeile einfach folgenden Befehl aus:
Jetzt bekommen Sie eine Anzahl Dateien und Verzeichnisse angezeigt, die
allesamt mit einem Punkt beginnen. Dies sind besagte versteckte Dateien, die
von ls normalerweise nicht angezeigt werden, aber
der Parameter -a zwingt es dazu, dies doch zu tun.
Mit diesen Daten bewaffnet, können Sie jetzt dabeigehen und nicht mehr
benötigte versteckte Dateien löschen. Hier tut es das gleiche Kommando, das
auch eine normale Datei löscht.
Versuchen Sie auf gar keinen Fall, mit
rm -r .* versteckte Verzeichnisse und Dateien zu
löschen! Da es in jedem Verzeichnis immer auch den Eintrag für das
übergeordnete Verzeichnis gibt (im Gegensatz zu rm -r *
geht rm -r .* auch auf übergeordnete Verzeichnisse
los, da auch der Eintrag für das übergeordnete Verzeichnis – also
.. – auf den Suchbegriff paßt)!
Es wird sicherlich schon verwunderlich sein, weshalb die Ausführung des
Löschbefehls so lange dauert, doch am Ende kommt das ganz böse Erwachen: Das
komplette System wurde soeben plattgemacht, und da rm
noch nicht einmal vor Dateisystemgrenzen haltmacht, werden auch Ihr
Homeverzeichnis, selbst wenn es in einer anderen Partition untergebracht ist,
sowie etwaige Windowsparitionen, wenn Sie diese unter Linux gemountet haben,
leergefegt!
Logdateien ausmisten
Auch hier können schon mal größere Datenmengen zusammenkommen, insbes. wenn
viele Informationen binnen kurzer Zeit festgehalten werden. In diesem Fall
können die Logdateien eine stattliche Größe erreichen, besonders wenn
logrotate nicht aktiv ist.
Dieser Dienst sorgt im Normalfalle dafür, daß Logdateien nach einer bestimmten
Zeit oder wenn sie eine bestimmte Größe erreichen gepackt werden, um sie zu
archivieren. Zwar nehmen Logdateien in gepacktem Zustand deutlich weniger Platz
ein als normal, doch auch diese Archivdateien sammeln sich über kurz oder lang
an und belegen einen nicht zu vernachlässigenden Anteil des Plattenplatzes. Von
daher bietet sich ein regelmäßiges Löschen dieser Archivdateien an.
Freundlicherweise lassen sich diese Archivdateien ganz einfach an ihrer Endung
erkennen, die auf .xz lautet, und zudem befinden
sich die Logdateien nebst etwaiger Archive an einem bestimmten Ort: Es ist das
Verzeichnis /var/log oder eines seiner
Unterverzeichnisse. Damit hält sich der Arbeitsaufwand in deutlichen Grenzen.
Wenn Sie Logdateiarchive loswerden wollen, so ist dies innerhalb eines
Verzeichnisses blitzschnell mit folgendem Befehl bewerkstelligt:
Dies löscht im aktuellen Verzeichnis sämtliche Dateien, die auf .gz enden. Im Bedarfsfalle können Sie manuell in die Unterverzeichnisse von /var/log wechseln und etwaige Archivdateien, die sich dort befinden, mit der gleichen Methode löschen.
Sie können diesen Prozeß jedoch auch automatisieren. In diesem Fall besorgt dieser Befehl den Rest: