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 cache devient trop gros. Puisque je suis vraiment nul en scriptage bash, j'aurai besoin d'un peu d'aide de la part de vous les gourous linux là-bas.
Voici en gros la logique (pseudo-code)
if ( Espace disque restant < 5 Go )
{
changer de répertoire pour '/home/user/lotsa_cache_files/'
if ( répertoire de travail actuel = '/home/user/lotsa_cache_files/')
{
supprimer les fichiers dans /home/user/lotsa_cache_files/
}
}
Obtenir l'espace disque restant
Je prévois d'obtenir l'espace disque restant à partir de la commande '/dev/sda5'. Si elle me renvoie la valeur suivante pour votre information :
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 225981844 202987200 11330252 95% /
Un peu de regex pourrait être nécessaire pour obtenir le '11330252' de la valeur retournée
Un peu de paranoïa
La partie 'if ( répertoire de travail actuel = /home/user/lotsa_cache_files/)' est juste un mécanisme défensif pour la paranoïa en moi. Je veux m'assurer que je suis effectivement dans '/home/user/lotsa_cache_files/' avant de procéder à la commande de suppression qui est potentiellement destructrice si le répertoire de travail actuel n'est pas présent pour une raison quelconque.
Suppression de fichiers
La suppression des fichiers se fera avec la commande ci-dessous au lieu du rm -f habituel :
find . -name "*" -print | xargs rm
Cela est dû à l'incapacité inhérente des systèmes linux de 'rm' un répertoire s'il contient trop de fichiers, comme j'ai pu l'apprendre par le passé.