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.
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, USER – PASS 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
Coordinador de postproducción y trainer oficial de Davinci Resolve por Blackmagic Design.