Programacion Interactiva

Descubre una Nueva y Poderosa Herramienta.

FrameWork de Nueva Generacion

Acceso a tu Informacion desde cualquier Dispositivo con Navegador.

Enfoque en el Backend

Frontend de forma facil con Odoo y XML.

Creacion de Verticales

Creacion de nuevas Verticales Conquistando nuevos Mercados.

Tu marca aqui mismo

Llega a miles de personas.

Publicidad

Mostrando las entradas con la etiqueta backups. Mostrar todas las entradas
Mostrando las entradas con la etiqueta backups. Mostrar todas las entradas

viernes, 27 de enero de 2017

Automatización de Respaldos de Bases de Datos Odoo desde Bash

Automatización de Respaldos en Odoo desde Bash



  1. Crear un Script (Backup-Script) en la Ruta /var/scripts/dump_db.sh
    #!/bin/sh    
    hostname='hostname'
    
    ##########################################
    ## Odoo Backup
    ## Respaldo de las Bases: odoodb1, odoob2
    ##########################################
    
    # Detener el Servicio de Odoo
    /etc/init.d/odoo-server stop
    
    # Dump DB (Backup de 2 Bases de Datos)
    for db in odoodb1 odoodb2
    do
      date='date +"%Y%m%d_%H%M%N"' # Respaldo con la fecha actual.
      filename="/var/pgdump/${hostname}_${db}_${date}.sql"
      pg_dump -E UTF-8 -p 5433 -F p -b -f $filename $db
      gzip $filename # Comprimiendo la Base de Datos
    done
    
    # Iniciando el servicio de Odoo nuevamente
    /etc/init.d/odoo-server start
    
    exit 0
    
  2. Script de Eliminación de los Backups, creamos un script en la ruta /var/scripts/housekeeping.sh (Solo borrara backups con una antiguedad de 30 dias para atras).
    #!/bin/sh
    path=/var/pgdump
    logfile=/var/log/$0
    
    rm -f $logfile
    for file in 'find /var/pgdump/ -mtime +30 -type f -name *.sql.gz'
    do
      echo "Borrando: " $file >> $logfile
      rm $file
    done
    
    exit 0 
  3. Programar la ejecucion de los scripts, modificamos el crontab en  /etc/crontab. La programación de los Backups se ejecutara a la 1 am y la limpieza de backups a las 5 am.
    # m h dom mon dow user  command
    0 1 * * * postgres /var/scripts/dump_db.sh
    0 5 * * * postgres /var/scripts/housekeeping.sh

Si queremos que nuestro Respaldo pese mucho menos podrĆ­amos comprimirlo con la librerĆ­a 7zip en lugar de gzip:



7zr a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on Mi_Backup.7z /path/to/database.dump


Nota: La detención del proceso de Odoo, puede variar dependiendo la instalación que hayan realizado, podría ser simplemente service odoo stop/start o podemos matar el proceso directamente con sudo fuser -k 8069/tcp.