654380491
hola@carlosdk.com
Login
[miniorange_social_login]

Login with your site account

Lost your password?

Carlos DK Carlos DK
  • Inicio
  • Kit digital
  • Universo Dk
  • Blog
  • Contacto
Back
  • Inicio
  • Kit digital
  • Universo Dk
  • Blog
  • Contacto
  • Home
  • Blog
  • Tutoriales formativos
  • Programar eliminar archivos con x días (px: para copias antiguas)

Tutoriales formativos

12 Oct

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

  • By Carlos Dk
  • In Tutoriales formativos
  • 4 comments
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 🙂

Tags:backuplinuxssh
  • Share:
Carlos Dk

You may also like

Crear categorías y configurar menú en WordPress en 4 min.

  • marzo 3, 2019
  • by Carlos Dk
  • in Tutoriales formativos
Crear categoría y menú WordPress Es indispensable en una nueva instalación de WordPress, crear las...
Instalar tema en WordPress en 2 pasos
febrero 23, 2019
Actualizar MySQL 5.1 a 5.6 en CentOS 6.9 con Plesk como panel
octubre 20, 2018
Recorrer todos los objetos de una capa o del DOM completo con JQuery
diciembre 22, 2014

    Comments

  1. Leand
    abril 19, 2018

    Hola gracias por el script , viene bien para un novato como yo, pero tengo una duda ¿Qué función tiene la ultima parte: \{\} \; ? el punto y coma digo yo que será par finalizar la linea. Gracias.

    Responder
  2. Pablo Vázquez Gualdán
    agosto 11, 2019

    Hola Carlos, muy bueno juntar find con un cron!! Apuntado!! Solo un detalle: con find, según la versión, también puedes utilizar el parámetro delete para borrar.

    También se puede especificar una fecha concreta siguiendo este formato:

    find /SYSADMIT/* -type f -not -newermt “AAAA:MM:DD HH:MI:SS” -delete

    Visto aquí: https://www.sysadmit.com/2019/08/linux-borrar-ficheros-por-fecha.html

    Responder
    • Carlos Dk
      agosto 12, 2019

      Gracias por el aporte Pablo 😉

      Responder

Leave A Reply Cancelar la respuesta

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Busca en la web

Recomiendo

Software ERP empresarial

Categorías

  • Miscelanea (129)
  • Tutoriales formativos (622)

Ponte en contacto

+34 654380491

hola@carlosdk.com

Torre del Mar (Málaga)

Enlaces rápidos

  • Universo Dk
  • Contacto
  • Blog

Soy social

  • Twitter
  • Linkedin
  • Youtube

Newsletters

Suscríbete para enterarte de lo último que estoy haciendo. No lo usaré para enviarte SPAM inútil 😉

Esta web la he diseñado con cariño en Andalucía por Carlos Dk