Post

Plantilla segura para scripts bash de mantenimiento

Plantilla segura para scripts bash de mantenimiento

Plantilla segura para scripts bash de mantenimiento

Este post resume patrones seguros para scripts de mantenimiento: logging, validaciones, dry-run, control de errores y limpieza de temporales.

Plantilla base

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env bash
set -euo pipefail

LOG="/var/log/mantenimiento.log"
DRY_RUN="${DRY_RUN:-0}"

log() {
  printf '[%s] %s\n' "$(date --iso-8601=seconds)" "$*" | tee -a "$LOG"
}

need() {
  command -v "$1" >/dev/null 2>&1 || {
    log "Falta binario requerido: $1"
    exit 2
  }
}

run() {
  log "+ $*"
  if [[ "$DRY_RUN" != "1" ]]; then
    "$@"
  fi
}

main() {
  need rsync
  run rsync -avh /origen/ /destino/
}

main "$@"

Temporales y limpieza

1
2
tmp="$(mktemp)"
trap 'rm -f "$tmp"' EXIT

Leer ficheros linea a linea

1
2
3
while IFS= read -r linea; do
  printf 'Procesando: %s\n' "$linea"
done < fichero.txt

Comprobar codigos de salida

1
2
3
4
5
6
if comando; then
  log "Comando correcto"
else
  log "Comando fallo"
  exit 1
fi

Errores a evitar

  • Variables sin comillas.
  • Secretos escritos en el script.
  • rm sin validar ruta.
  • kill -9 como primera opcion.
  • Shebang incorrecto.
  • Scripts sin dry-run para operaciones destructivas.

Scripts relacionados

  • liberamemoria.sh: ejemplo de mantenimiento simple con privilegios de root.
  • depura_ficheros.sh: ejemplo de limpieza programada de ficheros antiguos.
This post is licensed under CC BY 4.0 by the author.