Backup de máquinas virtuales Proxmox

El siguiente script realiza un backup de todas las máquinas virtuales (VPS) que tengamos en nuestro hipervisor Proxmox.

El modo de uso de dicho script es insertarlo en el cron para que el backup se realice periódicamente y, de forma adicional, se puede poner otro script al final de cada backup para que envíe las copias realizadas a un servidor externo.

#!/bin/sh

RUTA_DUMPS="/var/lib/vz/dump/"
MAXIMO_COPIAS=5

for VZ_ID in `vzlist -1` ; do

    VZ_HOSTNAME=`vzlist -o hostname -H ${VZ_ID}`
    VZ_IP=`vzlist -o ip -H ${VZ_ID}`
    VZ_DUMP="/var/lib/vz/dump/${VZ_HOSTNAME}_"`date '+%d%m%y%H%M%S'`".tgz"    

    echo ""
    echo "vzid ${VZ_ID}"
    echo "host ${VZ_HOSTNAME}"
    echo "ip.ad ${VZ_IP}"
    echo "dump ${VZ_DUMP}"
    echo ""

    #: descartando copias viejas
    TOTAL_COPIAS=`ls ${RUTA_DUMPS}${VZ_HOSTNAME}* | wc -l`
    NUMERO_DESCARTADOS=`echo "${TOTAL_COPIAS} - ${MAXIMO_COPIAS}" | bc`
    DESCARTADOS=`ls ${RUTA_DUMPS}${VZ_HOSTNAME}*  | head -n ${NUMERO_DESCARTADOS}`
    for descartado in ${DESCARTADOS} ; do rm -f $descartado ; done

    #: backuping
    vzctl set ${VZ_ID} --ipdel all --save
    cd /var/lib/vz/private/${VZ_ID}
    tar cvzf ${VZ_DUMP} .
    vzctl set ${VZ_ID} --ipadd ${VZ_IP} --save

done

No hay comentarios

Agregar comentario