Copia de seguridad en Linux con LFTP
LFTP es un cliente FTP sofisticado, y un programa de transferencia de ficheros que admite varios protocolos de red.
Preliminares
Sección titulada «Preliminares»Estos scripts asumen los siguientes valores por defecto:
- El valor de $TOMCAT_HOME es “/home/openkm/tomcat-9.0.76”
- La base de datos de OpenKM se llama “okmdb”.
- El valor de la contraseña de la base de datos de OpenKM es “*secret*”.
- La ubicación del script del servicio de inicio y parada de OpenKM es “/etc/init.d/tomcat”
Script de ejemplo
Sección titulada «Script de ejemplo»El punto de montaje del disco USB puede definirse en /etc/fstab como:
/dev/sdb1 /mnt/backup ext4 defaults 0 0Estas son las secciones globales del script:
- Configuración de variables globales bajo la sección ## BEGIN CONFIG ##.
- Comprobación del usuario root bajo la sección # Check root.
- Eliminación de copias de seguridad de base de datos antiguas bajo la sección # Delete older local database backup.
- Detener la aplicación (sección opcional) bajo la sección # Stop tomcat.
- Limpiar logs (sección opcional) bajo la sección # Clean logs.
- Copia de seguridad de la base de datos al sistema de ficheros bajo la sección # Backup database.
- Copia de seguridad del repositorio y del volcado de base de datos al destino de la copia de seguridad bajo la sección # Backup and purge old backups.
- Iniciar la aplicación (sección opcional) bajo la sección # Start tomcat.
Explicación de los parámetros de configuración:
| Parámetro | Descripción |
|---|---|
| HOST | El nombre del host del servidor. |
| NOW | Fecha actual en formato ‘dd-MM-yyyy’. |
| DATABASE_PASS | La contraseña de la base de datos. El usuario de base de datos usado para realizar la copia de seguridad siempre es el usuario root. |
| OPENKM_DB | El nombre de la base de datos de la aplicación. Normalmente se llama “okmdb”. |
| OPENKM_HOME | La carpeta home de OpenKM. |
| TOMCAT_HOME | La carpeta home de Tomcat. Normalmente dentro de la carpeta OPENKM_HOME. |
| DATABASE_EXP | La carpeta del volcado de la base de datos. Normalmente en el mismo servidor. |
| BACKUP_DIR | Destino FTP de la copia de seguridad. |
Cree un script de copia de seguridad /root/backup.sh
sudo suvim /root/backup.sh#!/bin/bash### BEGIN CONFIG ##HOST=$(uname -n)NOW=$(date +"%d-%m-%Y")DATABASE_PASS="*secret*"OPENKM_DB="okmdb"OPENKM_HOME="/home/openkm"TOMCAT_HOME="$OPENKM_HOME/tomcat-9.0.76"DATABASE_EXP="$OPENKM_HOME/db"BACKUP_DIR="ftp://user:password@ftp.server/backup"## END CONFIG ##
# Comprobar usuario rootif [ $(id -u) != 0 ]; then echo "You should run this script as root"; exit; fi
# Eliminar copia de seguridad de base de datos local antiguaecho -e "### BEGIN: $(date +"%x %X") ###\n"rm -rf $DATABASE_EXPmkdir -p $DATABASE_EXP
# Detener Tomcat/etc/init.d/tomcat stop
# Limpiar logs#echo "Clean Tomcat temporal files."#rm -rf $TOMCAT_HOME/logs/*#rm -rf $TOMCAT_HOME/temp/*#rm -rf $TOMCAT_HOME/work/Catalina/localhost
# Copia de seguridad de la base de datosif [ -n "$DATABASE_PASS" ]; then echo "* Backuping MySQL data from $OPENKM_DB..." mysqldump -h localhost -u root -p$DATABASE_PASS $OPENKM_DB > $DATABASE_EXP/mysql_$OPENKM_DB.sql echo "-------------------------------------";fi
# Copia de seguridad y purga de copias antiguaslftp $BACKUP_DIR -e "mkdir $NOW; mirror --reverse $OPENKM_HOME $NOW; exit"
# Iniciar Tomcat/etc/init.d/tomcat startecho -e "\n### END: $(date +"%x %X") ###"Configurar crontab
Sección titulada «Configurar crontab»Para instalar la tarea cron, ejecute:
$ sudo mkdir /root/logs$ sudo crontab -eAñada estas líneas según su configuración personal:
MAILTO=nomail@openkm.com@daily /root/backup.sh | tee /root/logs/backup.$(date +\%Y.\%m.\%d_\%H.\%M.\%S).log