proxmox_backup_collar.sh
proxmox_backup_collar.sh
proxmox_backup_collar.sh
Este script lanza backups con proxmox-backup-client de varias rutas origen hacia un repositorio PBS y ejecuta limpieza de memoria en el host remoto al finalizar.
Uso en la infraestructura
Se usa para conservar configuracion del hipervisor y rutas de soporte en Proxmox Backup Server.
| Rol | Servicio | Impacto si falla |
|---|---|---|
| Config hipervisor | Proxmox | Se complica reconstruir storage, red y jobs |
| Backup externo | PBS | No hay copia versionada fuera del host |
| Recuperacion | Laboratorio/VMs | Aumenta el tiempo de vuelta a servicio |
Complementa los backups de VMs; no los sustituye.
Ejecucion programada
30 3 * * * /ruta/origen/scripts/proxmox_backup_collar.sh
Flujo
- Define log diario.
- Exporta fichero de password PBS.
- Exporta fingerprint del servidor PBS.
- Ejecuta
proxmox-backup-client backupcon varios archivos.pxar. - Escribe resultado en log.
- Si termina correctamente, llama por SSH a
liberamemoria.shen el host remoto.
Script original
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
#!/bin/bash
LOG=/var/log/proxmox_backup_collar.log
FECHA=D$(date +%Y%m%d)
FILEIN='etc'
FILEOUT='etc.'
FILEIN1='tools'
FILEOUT1='tools.'
export PBS_PASSWORD_FILE=/ruta/segura/proxmox_client
export PROXMOX_BACKUP_FINGERPRINT='<FINGERPRINT>'
echo "Inicia backups de los filesystems" > $LOG
proxmox-backup-client backup \
collar-etc.pxar:/ruta/origen/etc \
collar-IMGs.pxar:/ruta/origen/IMGs \
collar-Descargas.pxar:/ruta/origen/Descargas \
collar-tools.pxar:/ruta/origen/tools \
collar-cursos.pxar:/ruta/origen/cursos \
collar-multimedia_base.pxar:/ruta/origen/multimedia_base \
collar-site-web.pxar:/ruta/origen/site-web \
--repository <USUARIO>@pbs@<HOSTNAME>:<DATASTORE> >> $LOG
if [ $? -ne 0 ]
then
echo "Error en el backup" >> $LOG
exit 2
else
echo "Backups Finalizados" >> $LOG
ssh <USUARIO_ADMIN>@<HOSTNAME> "/ruta/origen/scripts/liberamemoria.sh"
fi
exit 0
Version revisada
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env bash
set -euo pipefail
LOG="/var/log/proxmox_backup_$(date +%Y%m%d).log"
export PBS_PASSWORD_FILE="/ruta/segura/pbs_password"
export PROXMOX_BACKUP_FINGERPRINT="<FINGERPRINT>"
REPOSITORY="<USUARIO>@pbs@<HOSTNAME>:<DATASTORE>"
proxmox-backup-client backup \
etc.pxar:/ruta/origen/etc \
imgs.pxar:/ruta/origen/imagenes \
descargas.pxar:/ruta/origen/descargas \
tools.pxar:/ruta/origen/tools \
multimedia.pxar:/ruta/origen/multimedia \
site-web.pxar:/ruta/origen/site-web \
--repository "$REPOSITORY" >> "$LOG" 2>&1
ssh <USUARIO_ADMIN>@<HOSTNAME> "/ruta/origen/scripts/liberamemoria.sh"
Recomendaciones
- Guardar
PBS_PASSWORD_FILEfuera del repositorio y con permisos600. - Documentar
.pxarexcludepara rutas que no deban respaldarse. - Probar restauracion de un snapshot periodicamente.
- Evitar SSH como root si puede usarse un usuario dedicado.
Cambios y motivo
| Cambio | Motivo |
|---|---|
| variables para repositorio PBS | facilita cambiar datastore o host |
| validar credenciales y fingerprint | falla antes de iniciar backup largo |
| separar rutas en lista | simplifica revisar que entra en PBS |
| no mezclar limpieza remota con backup | evita que fallo de limpieza o SSH marque ambiguamente el resultado |
This post is licensed under CC BY 4.0 by the author.