plesk Archive

Backup de Plesk a Amazon Glacier

Con la intención de mejorar la seguridad y la posibilidad de restaurar el servicio ante un posible ataque que pudiera eliminar ficheros de mi servidor, además de realizar un backup diario que se almacena en el propio servidor, he implementado un sistema para exportar el backup que realiza Plesk a Amazon Glacier.

¿Por qué a Amazon Glacier?

En su momento estuve viendo Amazon, pero lo dejé aparcado por pereza. Finalmente esta semana pasada retomé el tema por recomendación de Alberto Larripa.  Es un servicio tremendamente económico, que está pensado para subir ficheros que rara vez van a ser recuperados. Es por eso, que mi política de backups consistirá en dejar en el propio servidor el backup de los últimos 7 días, y el resto ya estarán en Amazon Glacier.

Instalación del cliente AWS

La instalación del cliente es tremendamente sencilla. Una vez más mis agradecimientos a Alberto Larripa que ya lo había instalado y me recomendó este cliente que realmente funciona, y no como otros que había estado probando.

# pip install awscli
# aws configure

Y metemos los parámetros de configuración de nuestra cuenta de Amazon Glacier.

Exportar backup de Plesk

Para exportar un backup de Plesk a un único fichero .tar.gz , a partir del xml generado, podréis encontrar muchísimas páginas que hablan de ello, pero casi ninguna funciona. En unos casos, porque están usando un Plesk bastante viejo. En otros porque lo hacen únicamente para un dominio, y no para todo el backup completo. En cualquier caso, tras varias pruebas, este es el que me funciona a mi:

/usr/local/psa/admin/bin/plesk_agent_manager export-dump-as-file --dump-file-name bck_info_1504110411.xml -v --output-file bck_info_1504110411.xml.tar.gz

Script final que exporta de Plesk y sube a Amazon Glacier

Uniendo todo lo anterior, y obviamente dependiendo de las rutas en las que tengamos Plesk, cómo se llame nuestro Vault en Amazon, etc etc, el script que uso es el siguiente:

#!/bin/bash

# Script para hacer copia del backup de plesk a Amazon Glacier

LOG=/var/lib/psa/dumps/log_backups_amazon_glacier.txt

PLESK_BACKUP_PATH=/var/lib/psa/dumps
cd $PLESK_BACKUP_PATH
LATEST_XML_FILE=$(ls -1tr *.xml | tail -1)
BACKUP_FILE=$PLESK_BACKUP_PATH/$LATEST_XML_FILE.tar.gz

echo "### Construyo fichero de backup ###" >> $LOG
date >> $LOG
/usr/local/psa/admin/bin/plesk_agent_manager export-dump-as-file --dump-file-name $PLESK_BACKUP_PATH/$LATEST_XML_FILE -v --output-file $BACKUP_FILE

echo "### Fichero de backup construido, comenzamos subida a Glacier ###" >> $LOG
date >> $LOG
aws glacier upload-archive --vault-name Backup-Server --account-id - --archive-description $BACKUP_FILE --body $BACKUP_FILE

echo "Archive subido: "$BACKUP_FILE >> $LOG
date >> $LOG

cat $LOG | mail -s "Backup to Amazon Glacier" echebejo@gmail.com

# Elimino ficheros auxiliares
rm $BACKUP_FILE
rm $MAILMSG
echo "" > $LOG