Automatización de Respaldos en Odoo desde Bash
- 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
- 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
- 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.
Es necesario apagar el proceso, he realizado un script similar pero no apago el proceso y me funciona bien.
ResponderBorrarSlds
Gracias por el comentario y lo tomare en cuenta! Saludos
Borrarsupongo que se correría el riesgo de que alguien modifique un registro al momento de hacer backup
BorrarNormalmente no realizas estos procesos cuando utilizan el Sistema o al menos tratar de.
BorrarSi. Tiene razón. Es mejor detener odoo, para evitar una inconsistencia en la base de datos.
ResponderBorrar