diff --git a/scripts/backup_pve.sh b/scripts/backup_pve.sh index d00491f..7b6b496 100644 --- a/scripts/backup_pve.sh +++ b/scripts/backup_pve.sh @@ -1 +1,59 @@ -1 +#!/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