Shell script zum löschen von Dateien, wenn die Festplatte voll ist

Ich Schreibe ein kleines Skript, um freien Platz auf meinem linux-Alltag über CRON, wenn das cache-Verzeichnis wächst zu groß.
Da bin ich wirklich noch grün hinter bash-Skripting, ich brauche ein bisschen Hilfe von Euch linux gurus da draußen.

Hier ist im Grunde die Logik (pseudo-code)

    if ( Drive Space Left < 5GB )
    {
        change directory to '/home/user/lotsa_cache_files/'

        if ( current working directory = '/home/user/lotsa_cache_files/')
        {
            delete files in /home/user/lotsa_cache_files/
        }
    }

Immer Speicherplatz übrig

Ich planen, um die Festplatte Speicherplatz von '/dev/sda5 " - Befehl.
Wenn gibt den folgenden Wert, um mich für deine info :

Filesystem           1K-blocks      Used Available Use% Mounted on<br>
/dev/sda5            225981844 202987200  11330252  95% /

So ein wenig regex notwendig sein könnte, um die '11330252' aus der zurückgegebene Wert

Ein wenig paranoia

'If ( current working directory = /home/user/lotsa_cache_files/)" - Teil ist nur ein Abwehrmechanismus für die paranoia in mir. Ich möchte sicherstellen, dass ich bin in der Tat in '/home/user/lotsa_cache_files/', bevor ich gehen mit dem Befehl "löschen", was potentiell destruktiv, wenn das aktuelle Arbeitsverzeichnis ist nicht vorhanden für einige Grund.

Löschen von Dateien

Das löschen von Dateien erfolgt mit dem Befehl unten statt der üblichen rm -f:

find . -name "*" -print | xargs rm

Dies ist aufgrund der inhärenten Unfähigkeit von linux-Systemen zu 'rm' ein Verzeichnis, wenn es zu viele Dateien enthält, wie ich gelernt habe, in der Vergangenheit.

  • "inhärenten Unfähigkeit von linux-Systemen zu 'rm' ein Verzeichnis, wenn es zu viele Dateien enthält" Macht das auch bedeuten, "rm -rf"?
InformationsquelleAutor Roy | 2011-05-06
Schreibe einen Kommentar