Backup de Alfresco en Windows

Posted by in Servicios


Alfresco, es un excelente gestor documental, versátil con su versión Share, es una de esas herramientas de confianza que nos permiten su adquisición gratuita en su versión community

Para gestión de expedientes, actas de reuniones, documentación de equipo… realmente es una navaja suiza electrónica.

No hay documentación oficial respecto a las copias de seguridad, si bien aparece una guía de buenas prácticas.

Tras probar diferentes opciones y con el animo de ayudar a quien se le haya surgido esta tarea,  os dejo un script para windows (.bat) que usado como tarea programada semanalmente (por ejemplo) que os dejará un poco más tranquilos respecto a la copia de los datos de este sistema.

El siguiente script, se vale de 7zip  y Robocopy para realizar la compresión y copia de los ficheros del backup  y ha sido testado en Windows 2008 Server con Alfresco 4.2C instalado enPostgreSQL como gestor de Base de Datos.

Antes de nada tenemos que parametrizar las siguientes variables con nuestros datos:

Directorio destino del Backup, lo ideal es que sea una unidad de red.

SET BACKUP_DIR=Q:\Alfresco\

Path donde se encuentra la herramienta 7zip instalada:

SET I7Zip=C:\Program Files\7-Zip

Contraseña de los datos de acceso a la bd PostgreSQL

SET PGPASSWORD=*******

Si no recordais este dato, los datos de configuracion los podeis encontrar en:
C:\Alfresco\tomcat\shared\classes
dentro del archivo
alfresco_globals

Y sin más os dejo con el script:

echo off
SET BACKUP_DIR=Q:\Alfresco\
FOR /f "delims=" %%i IN ('date /t') do SET "ddd=%%i"
SET d1=%ddd:~6,4%
SET d2=%ddd:~3,2%
SET d3=%ddd:~0,2%
SET DATE=%d1%%d2%%d3%
SET FDIR=%d3%-%d2%-%d1%
SET BAKUP=%BACKUP_DIR%\%FDIR%
SET I7Zip=C:\Program Files\7-Zip
Echo "Cerrando servicio ALFRESCO"
net stop alfrescoTomcat
Echo Creando directorios de Backup
mkdir "%BACKUP_DIR%\%FDIR%"
mkdir "%BACKUP_DIR%\%FDIR%\postgresql\"
mkdir "%BACKUP_DIR%\%FDIR%\contentstore\"
mkdir "%BACKUP_DIR%\%FDIR%\contentstore.deleted\"
mkdir "%BACKUP_DIR%\%FDIR%\keystore\"
mkdir "%BACKUP_DIR%\%FDIR%\oouser\"
mkdir "%BACKUP_DIR%\%FDIR%\solr\"pushd "C:\Alfresco\postgresql\bin\"
SET PGPASSWORD=
pg_dump -i -h localhost -p 5432 -U alfresco -F c -b -v -f "%BACKUP_DIR%\%FDIR%\alfresco.sql" alfrescoEcho "COPIANDO FICHEROS"
robocopy C:\alfresco\alf_data\contentstore\ "%BACKUP_DIR%\%FDIR%\contentstore" /mir /r:1 /w:1 > "%BACKUP_DIR%\%FDIR%\backup_hot.log"
robocopy C:\alfresco\alf_data\contentstore.deleted\ "%BACKUP_DIR%\%FDIR%\contentstore.deleted" /mir /r:1 /w:1 >>"%BACKUP_DIR%\%FDIR%\backup_hot.log"
robocopy C:\Alfresco\alf_data\keystore\ "%BACKUP_DIR%\%FDIR%\keystore" /mir /r:1 /w:1 >> "%BACKUP_DIR%\%FDIR%\backup_hot.log"
robocopy C:\Alfresco\alf_data\oouser\ "%BACKUP_DIR%\%FDIR%\oouser" /mir /r:1 /w:1 >>"%BACKUP_DIR%\%FDIR%\backup_hot.log"
robocopy C:\Alfresco\alf_data\postgresql\ "%BACKUP_DIR%\%FDIR%\postgresql" /mir /r:1 /w:1 >>"%BACKUP_DIR%\%FDIR%\backup_hot.log"
robocopy C:\alfresco\alf_data\solr\ "%BACKUP_DIR%\%FDIR%\solr" /mir /r:1 /w:1 >> "%BACKUP_DIR%\%FDIR%\backup_hot.log"
ECHO "Comprimiendo Backup"
START "Comprimiendo Backup" /belownormal /wait "%I7Zip%"\7z.exe a -r "%BACKUP_DIR%\%FDIR%.7z" %BACKUP_DIR%"\"%FDIR%"\
rmdir "%BACKUP_DIR%\%FDIR%" /S /Q
net start alfrescoTomcat