Ir al contenido principal

Crons y Bash files

Introduccion

image.png

Los crons son acciones que puedes programar para que se ejecuten a cierte hora del dia o de manera recurrente

Crecion de Archivos Bash

puedes crear un archivo bash donde quieras pero te recominedo que sea un lugar que no muevas de manera recurrente para evitar problemas futuros.

Ejemplo un bash file

Aqui un ejemplo de como crear un backup de la data de los contenedores de Docker

Abres el editor de codigo nano directamente en donde almacenaras archivo.sh

sudo nano /usr/local/bin/backup_dockerdata.sh 

Pegas el contenido en el interior y guardas

#!/bin/bash
SOURCE_DIR="/dockerData"
BACKUP_DIR="/mnt/wdstorage/docker/backup"
RUNNING_CONTAINERS=$(docker ps -q)
echo "Deteniendo contenedores Docker en ejecución..."
docker stop $RUNNING_CONTAINERS
sleep 5
mkdir -p "$BACKUP_DIR"
rsync -av --delete "$SOURCE_DIR/" "$BACKUP_DIR/"
echo "Reiniciando contenedores Docker que estaban en ejecución..."
if [ -n "$RUNNING_CONTAINERS" ]; then
    docker start $RUNNING_CONTAINERS
fi

le agregas la propiead de "ejecutable" al archivo

sudo chmod +x /usr/local/bin/backup_dockerdata.sh

Creacion del cron

Ingresa el siguiente comando, si te pide seleccionar un editor de codigo eliges nano y le das en continuar (si quitas la palabra sudo, se creeara un cron sin permisos de administrador)

sudo crontab -e

y agregas la siguiente linea hasta el final,

0 3 * * * /usr/local/bin/backup_dockerdata.sh

El significado de esta linea es cada

  1. Minuto 0 
  2. Hora 3
  3. Todos los dias
  4. Todos los meses
  5. Todos los años

Ejecuta el archivo en esta ruta