Files
apagado_seguro/scripts/mariadb-shutdown.sh
T
2026-07-21 12:39:10 +02:00

44 lines
1.5 KiB
Bash

#!/usr/bin/env bash
# mariadb_clean_stop.sh - Cierre limipio del contenedor de MariaDB en una maquina
# CONFIGURACION ---------------------------------------------------------------
set -uo pipefail
# -u -> si no existe una variable devuelve error en vez de tratarla como cadnea vacia
# -o pipefail -> devuelve los errores de cualquier pipe no solo del ultimo
# VARIABLES
CONTAINER="mariadb"
GRACE=60
LOG="/var/log/safe-shutdown.log"
# -----------------------------------------------------------------------------
# funcion para escribir en el log
log() { echo "$(date -Is) [mariadb-safe-stop] $*" | tee -a "$LOG"; }
# PROGRAMA --------------------------------------------------------------------
log "inicio"
# Comprobacion de que el contenedor esta corriendo
# Lista los nombres de los contenedores activos y busca exactamente el nombre de $CONTAINER
# Si no lo encuentra escribe un aviso en el log y sale con 0
if ! docker ps --format '{{.Names}}' | grep -qx "$CONTAINER"; then
log "AVISO: el contenedor '$CONTAINER' no esta corriendo. Nada que hacer."
exit 0
fi
# Parada del contenedor
log "parando contenedor '$CONTAINER' (tiempo de gracia: ${GRACE}s)..."
if docker stop -t "$GRACE" "$CONTAINER" >/dev/null; then
log "OK: Contenedor parado con exito"
else
log "ERROR: docker stop falló"
exit 1
fi
# Verificacion del estado del contenedor
if docker ps --format '{{.Names}}' | grep -qx "$CONTAINER"; then
log "ERROR: '$CONTAINER' sigue activo despues del stop"
exit 1
fi
log "contenedor '$CONTAINER' detenido correctamente"
log "fin"