vn-ansible/scripts/backup_pve.sh

60 lines
2.1 KiB
Bash
Raw Normal View History

#!/bin/bash
# Configuración
IP_MACHINE=10.29.1.11
POOL=backup-pool
TARGET_DIR=/etc/pve
INTERFACES_FILE=/etc/network
BACKUP_NAME=etc-pve.pxar
BACKUP_NAME_INTERFACES=interfaces.pxar
LOG_FILE=/var/log/proxmox-backup-node-pve.log
KEY_FILE="key.key"
show_help() {
echo "Uso: $0 [--standard | --encrypt]"
echo
echo "Opciones:"
echo " --standard Realiza un respaldo estándar."
echo " --encrypt Realiza un respaldo encriptado (requiere un archivo de clave)."
echo " --help Muestra esta ayuda."
exit 0
}
if [ $# -eq 0 ]; then
show_help
fi
case "$1" in
--standard)
echo "$(date '+%Y-%m-%d %H:%M:%S') - Iniciando respaldo estándar de $TARGET_DIR al repositorio $IP_MACHINE:$POOL" | tee -a "$LOG_FILE"
proxmox-backup-client backup "$BACKUP_NAME:$TARGET_DIR" --repository "$IP_MACHINE:$POOL" 2>>"$LOG_FILE" &&
proxmox-backup-client backup "$BACKUP_NAME_INTERFACES:$INTERFACES_FILE" --repository "$IP_MACHINE:$POOL" 2>>"$LOG_FILE"
;;
--encrypt)
# Comprobar si el archivo de clave existe
if [ ! -f "$KEY_FILE" ]; then
echo "Error: El archivo de clave $KEY_FILE no existe." | tee -a "$LOG_FILE"
exit 1
fi
echo "$(date '+%Y-%m-%d %H:%M:%S') - Iniciando respaldo encriptado de $TARGET_DIR al repositorio $IP_MACHINE:$POOL" | tee -a "$LOG_FILE"
proxmox-backup-client backup "$BACKUP_NAME:$TARGET_DIR" --repository "$IP_MACHINE:$POOL" --crypt-mode encrypt --keyfile "$KEY_FILE" 2>>"$LOG_FILE" &&
proxmox-backup-client backup "$BACKUP_NAME_INTERFACES:$INTERFACES_FILE" --repository "$IP_MACHINE:$POOL" --crypt-mode encrypt --keyfile "$KEY_FILE" 2>>"$LOG_FILE"
;;
--help)
show_help
;;
*)
echo "Error: Opción no reconocida."
show_help
;;
esac
# Verificar el resultado del respaldo
if [ $? -eq 0 ]; then
echo -e "$(date '+%Y-%m-%d %H:%M:%S') - Respaldo completado con éxito. Puede revisar el log en $LOG_FILE\n" | tee -a "$LOG_FILE"
else
echo -e "$(date '+%Y-%m-%d %H:%M:%S') - Error durante el respaldo. Puede revisar el log en $LOG_FILE\n" | tee -a "$LOG_FILE"
exit 1
fi