Script Shell pour supprimer des fichiers lorsque le disque est plein

Je suis en train d'écrire un petit script pour libérer de l'espace sur mon linux tous les jours via CRON si le répertoire de cache devient trop importante.
Depuis que je suis vraiment vert à l'écriture de scripts bash, j'ai besoin d'un peu d'aide de vous linux gourous.

Ici est fondamentalement la logique (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/
        }
    }

Obtenir de l'espace disque gauche

J'ai l'intention d'obtenir de l'espace disque à gauche de l '/dev/sda5' de la commande.
Si renvoie la valeur suivante à moi pour votre info :

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

Donc un peu de regex peut être nécessaire pour obtenir le '11330252' de la valeur retournée

Un peu de la paranoïa

'Si ( répertoire de travail actuel = /home/utilisateur/lotsa_cache_files/) est juste un mécanisme de défense pour la paranoïa à l'intérieur de moi. Je veux m'assurer que je suis bien dans '/home/utilisateur/lotsa_cache_files/' avant de poursuivre avec la commande supprimer qui est potentiellement destructeurs, si le répertoire de travail actuel n'est pas présent pour une raison quelconque.

La suppression de fichiers

La suppression de fichiers sera fait avec la commande ci-dessous au lieu de l'habituel rm-f:

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

Cela est dû à l'incapacité intrinsèque des systèmes linux à " rm " un répertoire si elle contient trop de fichiers, comme je l'ai appris dans le passé.

"inhérent à l'incapacité des systèmes linux à" rm "un répertoire si elle contient trop de fichiers" est-ce que cela implique de "rm -rf"?

OriginalL'auteur Roy | 2011-05-06