En esta segunda parte implementamos la doble copia de seguridad a un servidor externo de nuestro backup de la base de datos postgreSQL de Davinci Resolve a través de un servicio FTP. Agregando un pequeño código al script que creamos en el artículo anterior. También se añade la salida de errores a un archivo log para registrar cualquier posible fallo.

Backup FPT

Todas estas opciones están incluidas en el script para la descarga y que podemos programar su ejecución en el crontab como ya vimos anteriormente.

Definiendo las variables FTP

Lo primero tendremos que añadir las nuevas variables al inicio del script en las que definimos las opciones de nuestro servidor:

FTP_HOST=servicioftp.ejemplo.com
FTP_USER=user
FTP_PASS=pass
FTP_PORT=21
FTP_PATH=/backups/db

Donde HOST y PORT serán los datos del servidor, USERPASS los del usuario de acceso y PATH la ubicación donde se guardarán los archivos del backup dentro del servidor.

Integrando la transferencia FTP

Esta parte del script haremos uso del programa «lftp» que está presente en todas las distribuciones GNU / Linux pero no viene instalado por defecto, así que será necesario instalarlo:

sudo apt install lftp

La parte en la que iniciamos la copia FTP es la siguiente:

function transferencia_ftp {
if [ -e $BACKUP_FILE ]; then
lftp -c "debug 2; open -u $FTP_USER,$FTP_PASS ftp://$FTP_HOST -p $FTP_PORT; glob -a rm -r $FTP_PATH/*.gz; put -O $FTP_PATH $BACKUP_FILE; exit; "
else
echo "$DATE Error al Respaldar $DATABASE_NAME por FTP"
fi
}

Aquí se lanzan las órdenes del programa FTP que subirá la copia y eliminará cualquier otra copia previa que tengamos en la carpeta o cualquier archivo con extensión «.gz». debug 2 hace referencia al nivel de detalle de mensajes de error de lftp que se imprimirán en el archivo log.

Activando la copia FTP al lanzar el script

Por otra parte, para añadir la «interacción» con el usuario en la que pueda activar el script con la opción de la copia ftp es la siguiente:

if [[ -z "$1" ]]; then
echo "$DATE Solo copia local"
elif [ "$1" = "-ftp" ]; then
transferencia_ftp
else
echo "$DATE $1 parámetro incorrecto"
fi

La variable $1 representa la primera palabra introducida junto con el script y en caso de no coincidir con «-ftp» nos mostrará el mensaje de error.

Para gestionarlo desde un único script añadiremos una variable extra al script para invocar la opción deseada a la hora de ejecutar el script.

Es decir, para activar la doble copia debemos lanzarlo añadiendo el parámetro «-ftp»:

./backup_davinci.sh -ftp

Añadiendo salida de errores a un archivo

Por último añadimos soporte para que todos los mensajes que obtiene el script los escriba en un fichero log dentro de la carpeta del usuario. Para ello aña dimos la variable:

LOG_FILE=$HOME/backup_db.log

Y a continuación de la definición de variables añadimos la órden:

exec 1>> $LOG_FILE 2>&1

Dejar comentaio

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *