Ir al contenido
Otras versiones

Cargando…

Copia de seguridad en Linux con LFTP

LFTP es un sofisticado cliente FTP y un programa de transferencia de ficheros que admite varios protocolos de red.

Estos scripts asumen los siguientes valores predeterminados:

  • El valor de $TOMCAT_HOME es “/home/openkm/tomcat-8.5.69”
  • 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 de servicio de arranque y parada de OpenKM es “/etc/init.d/tomcat”

El punto de montaje del disco USB se puede definir en /etc/fstab de la siguiente forma:

/dev/sdb1 /mnt/backup ext4 defaults 0 0

Estas son las secciones globales del script:

  • Configuración de variables globales en la sección ## BEGIN CONFIG ##.
  • Comprobación del usuario root en la sección # Check root user.
  • Eliminación de la copia de seguridad anterior de la base de datos en la sección # Delete older local database backup.
  • Parada de la aplicación (sección opcional) en la sección # Stop Tomcat.
  • Limpieza de registros (sección opcional) en la sección # Clean logs.
  • Copia de seguridad de la base de datos en el sistema de ficheros en la sección #Backup database.
  • Copia de seguridad del repositorio y del volcado de la base de datos en el destino de la copia de seguridad en la sección #Backup and purge old backups.
  • Arranque de la aplicación (sección opcional) en la sección # Start Tomcat.

Explicación de los parámetros de configuración:

Parámetro Descripción
HOST El nombre de host del servidor.
NOW Fecha actual en el formato ‘dd-MM-yyyy’.
DATABASE_PASS La contraseña de la base de datos.
El usuario de la base de datos que realiza las copias de seguridad es siempre el usuario root.
OPENKM_DB El nombre de la base de datos de la aplicación.
Normalmente se llama “okmdb”.
OPENKM_HOME La carpeta de inicio de OpenKM.
TOMCAT_HOME La carpeta de inicio 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

Ventana de terminal
sudo su
vim /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-8.5.69"
DATABASE_EXP="$OPENKM_HOME/db"
BACKUP_DIR="ftp://user:password@ftp.server/backup"
## END CONFIG ##
# Check root user
if [ $(id -u) != 0 ]; then echo "You should run this script as root"; exit; fi
# Delete older local database backup
echo -e "### BEGIN: $(date +"%x %X") ###\n"
rm -rf $DATABASE_EXP
mkdir -p $DATABASE_EXP
# Stop Tomcat
/etc/init.d/tomcat stop
# Clean logs
#echo "Clean Tomcat temporal files."
#rm -rf $TOMCAT_HOME/logs/*
#rm -rf $TOMCAT_HOME/temp/*
#rm -rf $TOMCAT_HOME/work/Catalina/localhost
# Backup database
if [ -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
# Backup and purge old backups
lftp $BACKUP_DIR -e "mkdir $NOW; mirror --reverse $OPENKM_HOME $NOW; exit"
# Start Tomcat
/etc/init.d/tomcat start
echo -e "\n### END: $(date +"%x %X") ###"

Para instalar la tarea de cron, ejecute:

Ventana de terminal
$ sudo mkdir /root/logs
$ sudo crontab -e

Añada estas líneas de acuerdo con su configuración personal:

MAILTO=nomail@openkm.com
@daily /root/backup.sh | tee /root/logs/backup.$(date +\%Y.\%m.\%d_\%H.\%M.\%S).log