2025-01-07 15:08:05 +00:00
|
|
|
#!/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
|