So löschen Sie Junk-Dateien elegant in Linux

So löschen Sie Junk-Dateien elegant in Linux

Ich frage mich, ob Sie wie ich ein Programmierer sind, der seine Computerdateien ordentlich anordnet und nutzlose Dateien rechtzeitig löscht? Wenn ja, dann können wir gerne über den Inhalt des Artikels diskutieren. Wenn nicht, können Sie bleiben und mitmachen (>-<).

Als nächstes kommt der heutige Protagonist – tmpwatch, das uns dabei helfen kann, Dateien und leere Verzeichnisse, auf die innerhalb einer bestimmten Zeit nicht zugegriffen wurde, rekursiv zu löschen.

Natürlich können wir den Befehl „find“ auch verwenden, um Dateien zu finden und zu löschen, auf die länger als x Tage nicht zugegriffen wurde, aber tmpwatch kann dies in einem Schritt erledigen, also warum nicht?

Standardmäßig entscheidet tmpwatch anhand der Zugriffszeit, welche Dateien oder Verzeichnisse gelöscht werden. Darüber hinaus können Sie auch entsprechend der Inode-Änderungszeit und der Änderungszeit arbeiten.

Normalerweise wird tmpwatch verwendet, um Dateien im Verzeichnis /tmp sowie andere nicht verwendete Dateien an anderen Orten zu löschen, z. B. alte Protokolldateien.

WICHTIGER HINWEIS! !

Führen Sie tmpwatch nicht in / (root) aus!
Führen Sie tmpwatch nicht in / (root) aus! !
Führen Sie tmpwatch nicht in / (root) aus! ! ! (Dreimal Warnung! ^-^)

Das /-Verzeichnis enthält wichtige Dateien, die für den Betrieb des Linux-Systems erforderlich sind, und tmpwatch verfügt nicht über einen integrierten Schutzmechanismus, der verhindert, dass es im /-Verzeichnis ausgeführt wird. Sobald diese wichtigen Dateien gelöscht werden, sind die Folgen katastrophal! Daher müssen Freunde bei der Verwendung dieses Befehls vorsichtig sein!

Installieren Sie tmpwatch

Die Installation von tmpwatch ist in den Standard-Repositorys der meisten Linux-Distributionen verfügbar:

Unter Fedora:

$ sudo dnf installiere tmpwatch

Unter CentOS:

$ sudo yum installiere tmpwatch

Unter openSUSE:

$ sudo zypper installiere tmpwatch

Unter Debian und seinen Derivaten (wie Ubuntu) wird tmpwatch auch tmpreaper genannt:

$ sudo apt installiere tmpreaper

Verwenden Sie tmpwatch/tmpreaper, um Dateien zu löschen, auf die innerhalb einer bestimmten Zeit nicht zugegriffen wurde

Die Verwendung von tmpwatch und tmpreaper ist nahezu identisch und sie können als derselbe Befehl betrachtet werden. Der Einfachheit halber wird in diesem Artikel tmpwatch als Beispiel verwendet. Freunde, die Debian-basierte Systeme verwenden, können das folgende tmpwatch in tmpreaper ändern.

1. Dateien löschen, auf die seit mehr als X Tagen nicht zugegriffen wurde <br /> Beispiel: Alle Dateien und leeren Verzeichnisse im Ordner /var/log/ löschen, auf die seit mehr als 10 Tagen nicht zugegriffen wurde

tmpwatch 10d /var/log/

2. Dateien löschen, die seit mehr als X Tagen nicht geändert wurden <br /> Wie oben erwähnt, löscht tmpwatch Dateien standardmäßig basierend auf der Zugriffszeit. Jetzt verwenden wir die Option -m, um Dateien basierend auf der Änderungszeit zu löschen.

Beispiel: Löschen Sie Dateien im Ordner /var/log/, die seit mehr als 10 Tagen nicht geändert wurden

tmpwatch -m 10d /var/log/

Das d in den beiden obigen Befehlen ist der Zeitparameter wie folgt:

  • d - Anzahl der Tage
  • h - Stunden
  • m - Minuten
  • s - Sekunden

Der Standardzeitparameter ist Stunden. Wenn Sie Dateien löschen möchten, die in den letzten 10 Stunden nicht geändert wurden, können Sie dies in der folgenden Form schreiben:

tmpwatch -m 10 /var/log/

3. Löschen Sie den symbolischen Link

Symbolische Links können mit der Option -s entfernt werden:

tmpwatch -s 10 /var/log/

4. Löschen Sie alle Dateien (einschließlich regulärer Dateien, symbolischer Links und Verzeichnisse).

tmpwatch kann nicht nur normale Dateien löschen, sondern auch einige spezielle Dateien wie symbolische Links, Verzeichnisse, Pipe-Dateien usw. In diesem Fall müssen Sie die Option -a verwenden:

tmpwatch -a 10 /var/log/

5. Verzeichnisse beim Löschen ausschließen <br /> Wenn Sie ein Verzeichnis nicht löschen möchten, können Sie die Option --nodirs verwenden, um das Verzeichnis vom Löschen auszuschließen:

tmpwatch -am 10 --nodirs /var/log/

6. Testlöschung (ohne tatsächlich etwas zu löschen)
Hier sei noch einmal betont, dass beim Löschen von Dateien in wichtigen Verzeichnissen nicht voreilig der Befehl tmpwatch verwendet werden sollte! Möglicherweise möchten Sie zunächst prüfen, welche Dateien nach der Ausführung des Befehls gelöscht werden. Andernfalls wird es zu Problemen kommen, wenn Sie die falschen Dateien löschen. . (Entwickeln Sie eine gute Angewohnheit!)

Sie können -t verwenden, um in den Testmodus zu wechseln:

tmpwatch -t 30 /var/log/

Ausgabe unter CentOS 7:

Datei /var/log/wtmp wird gelöscht
Verzeichnis /var/log/ppp wird gelöscht, wenn es leer ist
Verzeichnis /var/log/tune wird gelöscht, wenn es leer ist
Verzeichnis /var/log/anaconda wird gelöscht, wenn es leer ist
Datei /var/log/dmesg.old wird gelöscht
Datei /var/log/boot.log wird gelöscht
Datei /var/log/dnf.librepo.log wird gelöscht

Ausgabe auf Debian-basierten Systemen:

$ tmpreaper -t 30 /var/log/
(PID 1803) Gibt vor, das Verzeichnis „/var/log/“ zu bereinigen.
(PID 1804) Gibt vor, das Verzeichnis „apache2“ zu bereinigen.
Vorgeben, die Datei „apache2/error.log“ zu entfernen.
Vorgeben, die Datei „apache2/access.log“ zu entfernen.
Vorgeben, die Datei „apache2/other_vhosts_access.log“ zu entfernen.
(PID 1804) Zurück von der Rekursion nach unten in „apache2“.
(PID 1804) Gibt vor, das Verzeichnis „dbconfig-common“ zu bereinigen.
Vorgeben, die Datei „dbconfig-common/dbc.log“ zu entfernen.
(PID 1804) Zurück von der Rekursion nach unten in „dbconfig-common“.
(PID 1804) Gibt vor, das Verzeichnis „dist-upgrade“ zu bereinigen.
(PID 1804) Zurück von der Rekursion nach unten zu „dist-upgrade“.
(PID 1804) Gibt vor, das Verzeichnis „lxd“ zu bereinigen.
(PID 1804) Zurück von der Rekursion nach unten „lxd“.
Vorgeben, die Datei „/var/log//cloud-init.log“ zu entfernen.
(PID 1804) Gibt vor, das Verzeichnis „Landscape“ zu bereinigen.
Gibt vor, die Datei „landscape/sysinfo.log“ zu entfernen.
(PID 1804) Zurück von der Rekursion nach unten in „Landschaft“.
[...]

Der obige Vorgang löscht die Dateien nicht tatsächlich, sondern simuliert nur den Löschvorgang, um Ihnen mitzuteilen, welche Dateien gelöscht werden.

Wenn Sie sicher sind, dass die zu löschenden Dateien die richtigen sind, können Sie die Option -t entfernen und tmpwatch ausführen, um sie tatsächlich zu löschen.

7. Zwangslöschung
Standardmäßig löscht tmpwatch keine Dateien, für die der aktuelle Benutzer keinen Schreibzugriff hat. Wenn Sie diese Dateien jedoch löschen müssen, können Sie das Löschen mit der Option -f erzwingen:

tmpwatch -f 10h /var/log/

8. Bestimmte Dateien beim Löschen überspringen <br /> Wenn Sie beim Löschen bestimmte Dateien behalten möchten, also zur Whitelist hinzufügen möchten, können Sie die Option --protect verwenden. Angenommen, wir möchten alle Dateien vom Typ txt behalten:

tmpreaper --protect '*.txt' -t 10h /var/log/

Ausgabe:

(PID 2623) Gibt vor, das Verzeichnis „/var/log/“ zu bereinigen.
(PID 2624) Gibt vor, das Verzeichnis „apache2“ zu bereinigen.
Vorgeben, die Datei „apache2/error.log“ zu entfernen.
Vorgeben, die Datei „apache2/access.log“ zu entfernen.
Vorgeben, die Datei „apache2/other_vhosts_access.log“ zu entfernen.
(PID 2624) Zurück von der Rekursion nach unten in „apache2“.
(PID 2624) Gibt vor, das Verzeichnis „dbconfig-common“ zu bereinigen.
Vorgeben, die Datei „dbconfig-common/dbc.log“ zu entfernen.
(PID 2624) Zurück von der Rekursion nach unten in „dbconfig-common“.
(PID 2624) Gibt vor, das Verzeichnis „dist-upgrade“ zu bereinigen.
(PID 2624) Zurück von der Rekursion nach unten zu „dist-upgrade“.
Gibt vor, das leere Verzeichnis „dist-upgrade“ zu entfernen.
Eintrag, der dem Muster „--protect“ entspricht, übersprungen. „ostechnix.txt“
(PID 2624) Gibt vor, das Verzeichnis „lxd“ zu bereinigen.

Richten Sie einen Cron-Job ein, um Dateien regelmäßig automatisch zu löschen

(Insgeheim funktioniert tmpwatch/tmpreaper am besten mit Cron-Jobs.)

Rufen Sie das Bearbeitungsfenster für die Cron-Job-Aufgabe auf:

# crontab -e

Fügen Sie eine periodische Aufgabe hinzu:

0 1 * * * /usr/sbin/tmpwatch 30d /var/log/

Der obige Code stellt tmpwatch so ein, dass es täglich um 1:00 Uhr ausgeführt wird und Dateien löscht, die älter als 30 Tage sind.

Freunde, die sich mit Maisjobs nicht auskennen, können im Internet nach einem Leitfaden für Anfänger suchen.

Wenn Sie tmpreaper installieren, wird automatisch ein täglicher Cron-Job erstellt (/etc/cron.daily/Tmpreaper). Es liest die Konfiguration aus der Datei /etc/timereaper.conf und führt sie aus. Die Standardeinstellung ist, Dateien zu löschen, die älter als 7 Tage sind. Sie können diese Einstellung ändern, indem Sie die Datei TMPREAPER.conf mit „TMPREAPER_TIME=7d“ ändern.

Abschließende Gedanken
Abschließend möchte ich Sie daran erinnern, dass Sie beim Löschen von Dateien den Pfad sorgfältig überprüfen müssen, um einen Datenverlust zu vermeiden.

Manpages zu tmpwatch und tmpreaper:

$ man tmpwatch
$ Mann tmpreaper

Dies ist das Ende dieses Artikels zum eleganten Löschen von Junk-Dateien in Linux. Weitere relevante Inhalte zu Linux-Junk-Dateien finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Autotrash-Tool für Linux zum automatischen Löschen alter Junk-Dateien zu einem festgelegten Zeitpunkt

<<:  Analyse der Methode zum Einrichten geplanter Aufgaben in MySQL

>>:  Beispielcode zum Vergleich verschiedener Syntaxformate von vue3

Artikel empfehlen

25 CSS-Frameworks, Tools, Software und Vorlagen geteilt

Kobold-Kuh herunterladen CSS-Fussel herunterladen...

Einfaches Schreiben von gespeicherten MySQL-Prozeduren und -Funktionen

Was ist eine gespeicherte Prozedur? Einfach ausge...

JavaScript-Entwurfsmuster, Lernadaptermuster

Inhaltsverzeichnis Überblick Code-Implementierung...

Schritte für Vue3 zur Verwendung von Mitt für die Komponentenkommunikation

Inhaltsverzeichnis 1. Installation 2. Ins Projekt...

Ein unvollständiger Leitfaden zur JavaScript-Toolchain

Inhaltsverzeichnis Überblick Statische Typprüfung...

Beispielcode zur Implementierung eines zufälligen Roll Callers in HTML

Nachdem dieses Namensaufrufgerät mit dem Aufruf d...

12 Javascript-Tabellensteuerelemente (DataGrid) sind aussortiert

Wenn die DataSource-Eigenschaft eines DataGrid-Ste...

CSS3-Implementierungscode für den kreisförmigen Fortschritts-Tick-Effekt

Inhaltsverzeichnis 8. Kreisförmiger Fortschritts-...

So installieren Sie Composer unter Linux

1. Laden Sie das Installationsskript - composer-s...

js Array fill() Füllmethode

Inhaltsverzeichnis 1. fill()-Syntax 2. Verwendung...

Farbverlaufseffekt im HTML-Hintergrund durch CSS-Stil erreicht

Screenshots der Effekte: Implementierungscode: Cod...