Script de Shell para eliminar archivos cuando el disco está lleno

Estoy escribiendo un pequeño script pequeño para liberar espacio en mi Linux todos los días a través de CRON si el directorio de caché crece demasiado. Como soy realmente ecológico en bash scripting, necesitaré un poco de ayuda de ustedes, los gurús de Linux.

Aquí está básicamente la lógica (pseudocódigo)

    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/
        }
    }
Obtener espacio en el disco izquierdo

Planeo obtener el espacio de disco restante del comando '/ dev / sda5'. Si me devuelve el siguiente valor para su información:

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

s posible que se necesite un poco de expresión regular para obtener el '11330252' del valor devuelto

Una pequeña paranoia

La parte 'if (directorio de trabajo actual = / home / user / lotsa_cache_files /)' es solo un mecanismo defensivo para la paranoia dentro de mí. Quiero asegurarme de que realmente estoy en '/ home / user / lotsa_cache_files /' antes de continuar con el comando de eliminar que es potencialmente destructivo si el directorio de trabajo actual no está presente por alguna razón.

Eliminar archivos

La eliminación de archivos se realizará con el siguiente comando en lugar del rm -f habitual:

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

Esto se debe a la incapacidad inherente de los sistemas Linux para 'rm' un directorio si contiene demasiados archivos, como he aprendido en el pasado.

Respuestas a la pregunta(4)

Su respuesta a la pregunta