Programar eliminar archivos con x días (px: para copias antiguas)

Linux
Linux

Bienvenidos a VerTutoriales.com, siguiendo con la administración de servidores Linux. Hoy os explico como realizar una eliminación de archivos con varios días determinados de un servidor, en mi caso  implementado dentro de un fichero Bash para ejecutarlo como tarea programada con Cron.

Sino sabes que son los archivos bash léete este párrafo. Estos archivos bash en sistemas linux sirven para poder procesar varias líneas de ejecución, a la vez de poder incluso utilizar variables dentro del mismo para reutilizarlo en el mismo fichero. Por decir, incluso pueden recibir parámetros y que sean utilizados dentro de su ejecución. Aunque en este tutorial no vamos a profundizar tanto, siempre es interesante saber lo que puede hacer para que luego cada uno investigue por su cuenta. Dicho esto, vamos a ver el fichero bash que me preparé para eliminar una copia de seguridad a partir de x días de antigüedad.

#!/bin/bash
find /backup/*.zip -mtime +1 -type f -exec rm -f \{\} \;

Find sirve para buscar archivos, en nuestro caso, dentro de la carpeta backup, buscamos todos los archivos con extensión zip que utilizamos para nuestras copias de seguridad, pero con el parámetro -mtime decimos que tengan más de +1 día (es decir, que se guarden 2 copias antiguas) y luego ejecutamos con el parámetro -exec otro comando diferente para los archivos encontrados, en este caso un rm -f, que lo que hace es eliminar sin preguntar (-force), en otras palabras, eliminar todos las copias con más de 2 días que existan en nuestro servidor. Si queréis copias de más tiempo en el mismo servidor, solo tenéis que ampliar el +1 por los días que queráis.

Esto a su vez, lo hemos metido en el archivo bash, no es más que guardarlo en un archivo de texto. Aunque esto entiendo que ya deberá de estar en conocimiento, decir que se utiliza algún editor como vim o nano y guardarse ese par de líneas para que se identifique como tal.

Para ejecutarlo solo escribir bash nombredelscriptcreado.sh

Tened cuidado a la hora de ejecutar el script, ya que como he comentado, hay un comando de eliminación con force, por lo que si el comando está erroneo, puedes llegar a eliminar archivos no deseados y armarla parda 🙂

Espero que os sirva, yo esto me lo dejo aquí para reutilizar en el futuro. Por terminar, decir que este comando lo utilizo dentro de un script mucho más amplio que realiza la copia de seguridad de uno de mis servidores web, por lo que iré ampliando la información para que tengáis el script completo por si os interesa.

Si tenéis cualquier duda abajo tenéis los comentarios para realizar la consulta. Si os gusta agradezco que lo compartáis o al menos pongáis un «gracias» en los comentarios 🙂

Carlos Dk

Apasionado por la enseñanza y el SEO

4 comentarios en “Programar eliminar archivos con x días (px: para copias antiguas)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.