linux

Respaldar carpeta de Linux periódicamente usando cron

Ya pasó algún tiempo desde que publiqué un simple script que se encarga de hacer un backup de una carpeta; es decir, respalda toda una carpeta con su contenido.

En ese post indico que se podría hacer periódicamente con cron, pero no digo cómo. Es por eso que hoy vengo a explicar cómo respaldar una carpeta en Linux cada determinado tiempo; puede ser todos los días, cada mes, cada domingo, etcétera.

Respaldando carpeta cada minuto usando cron y script de Linux

El tutorial está probado en Linux Ubuntu pero debería funcionar para otras distribuciones y versiones; pues al final de todo es Linux. Te animo a probar en cuáles otros lugares funciona.

Una pequeña introducción a cron

cron es un demonio (un proceso al final de cuentas) que ejecuta tareas cada cierto tiempo. Puede ejecutar múltiples comandos, o ejecutar un script.

Configurar editor de cron

Ya hice un tutorial para saber cómo editar cron, pues a veces se abre con vim y otras con nano; si no quieres morir en el intento míralo aquí.

Paso 1: probar script manualmente

Bueno, basta de charlas. El script es ahora el siguiente, ya que le tuve que hacer algunas modificaciones por eso de las rutas absolutas y relativas:

#!/bin/bash
RUTA_SCRIPT=`dirname ${BASH_SOURCE[0]}`
FECHA_Y_HORA=`date "+%d-%m-%y_%H-%M-%S"`
NOMBRE_ARCHIVO="respaldo_$FECHA_Y_HORA.tgz"
CARPETA_DESTINO="$RUTA_SCRIPT/respaldos"
# Nota: la carpeta a respaldar puede ser otra, pero si no es relativa al script, pon su ruta completa
CARPETA_RESPALDAR="$RUTA_SCRIPT/cosas_importantes"
# Creamos el directorio para los respaldos por si no existe
mkdir -p "$CARPETA_DESTINO"
tar cfvz "$CARPETA_DESTINO/$NOMBRE_ARCHIVO" "$CARPETA_RESPALDAR"

No indicaré cómo usarlo, pues eso ya está en el post que cito al inicio. Lo que sí recomiendo es primero ejecutarlo manualmente y comprobar que funcione, ya que a veces lo agregamos a cron, falla y creemos que es culpa de cron cuando en realidad es el script.

En esta imagen estoy probando el script y comprobando que realmente funciona:

Probar script para respaldar carpetas en Linux

Paso 2: configurar en crontab

Ahora ejecutamos:

crontab -e

Eso abrirá el editor para modificar el fichero de cron. En él, al final, agregaremos la siguiente línea:

* * * * * /ruta/absoluta/de/script/respaldar.sh

(son 5 asteriscos separados por un espacio, y al final está la ruta absoluta del script)

Guardamos cambios. Lo que hicimos fue indicar a cron que tiene que ejecutar cada minuto (todas las horas, días y meses) nuestro script ubicado en la ruta que indicamos. Personalmente el mío quedó así:

* * * * * /home/cabox/workspace/respaldar.sh

Para que no queden dudas, así se ve:

Ejemplo de cron en Linux Ubuntu

Paso 3: probar que script se ejecuta cada cierto tiempo

Ahora solamente resta esperar un minuto para que veamos si nuestro script funciona. Aquí está un ejemplo:

Respaldando carpeta cada minuto usando cron y script de Linux

El script está siendo ejecutado correctamente cada minuto, y está respaldando la carpeta que le indicamos. Ahora que vimos que ya funciona podemos ajustar los valores de cron para que se ejecute según nuestras necesidades.

Para editar cron, recuerda llamar simplemente a crontab -e y poner los valores correspondientes. Como guía, te dejo la Wikipedia y este ayudante de cron que indica el comando que tienes que usar según el tiempo que configures.

Bonus: enviar respaldo a Telegram

Podemos hacer respaldos cada cierto intervalo de tiempo y enviar el archivo o directorio respaldado con un Bot de Telegram:

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.