Como eliminar archivos de una carpeta pasados x dias

A veces puede que necesites eliminar archivos de una carpeta de tu hosting de manera automatizada.


Por ejemplo para limpiar archivos temporales, archivos de caché, etc.


cPanel incluye una opción que son las tareas cron que van a permitirte eliminar todos los archivos de cualquier carpeta que desees de forma automática.


Para ello debes crear una tarea cron (cronjob) en cPanel añadiendo el siguiente comando:


find /home/usuariocpanel/public_html/carpeta -type f -mtime +numerodias -exec rm -f {} \; > /dev/null 2>&1


En este comando debes cambiar los siguientes parámetros:


  • usuariocpanel: Aquí debes poner tu usuario de cPanel
  • carpeta: Aquí debes poner la ruta completa relativa al public_html donde están los archivos que quieres eliminar (Ejemplo /tmp)
  • numerodias: Debes definir el número máximo de días de los archivos que quieres conservar (Ejemplo, si quieres eliminar los archivos que tienen más de 30 días, pondrás 30)


Ejemplos


Eliminar archivos que tengan más de 30 días de la carpeta /tmp:


find /home/usuariocpanel/public_html/tmp -type f -mtime +30 -exec rm -f {} \; > /dev/null 2>&1


Eliminar archivos que tengan más de 7 días de la carpeta /upload:


find /home/usuariocpanel/public_html/upload -type f -mtime +7 -exec rm -f {} \; > /dev/null 2>&1


NOTA: Asegúrate que pones tu usuario de cpanel real. El nombre de usuario de cPanel lo puedes ver en la página principal de cPanel:



También puedes verlo en la propia sección de Tareas Cron.



Elegir la periodicidad


Puedes correr la tarea cron a diario para así asegurarte que todos los días correrá automáticamente y que eliminará los archivos más antiguos de x días que hayas configurado.


Ahora solo te quedará definir una hora y minuto del día para que se ejecute.


En este ejemplo, hemos configurado el cron para que todos los días a las 16:45 de la tarde elimine todos los archivos que tengan más de 30 días de la carpeta "upload":