Siempre he tenido el mismo problema cuando tengo un proyecto en producción como coño hago un backup de todo. Y como hago la restauraciòn del mismo.

  • Usuario
  • Datasource
  • Cuadros de Mando
  • etc..

Muy poca gente sabe que pentaho te da una pequeña ayuda, lo que he hecho es crear un envoltorio al script para que nos sea mas facil usarlo.

-- sample the native call
./import-export.sh --restore --url=http://localhost:8080/pentaho --username=admin --password=password --file-path=/home/Downloads/backup.zip --overwrite=true --logfile=/temp/logfile.log
./import-export.sh --backup --url=http://localhost:8080/pentaho --username=admin - -password=password --file-path=/home/Downloads/backup.zip --logfile=/temp/logfile.log

Con este shell podemos crear facilmente backups de todo e incluso mandarlo por rsync a otros host. Tambien tendremos la posibilidad de restaurar todo el sistema. Este shell no es valido o no esta pensado para un pentaho en cluster.

Como siempre comentarios son muy apreciado

#!/bin/bash
# Maintain for @sowe Rafael Valenzuela <ravamo@gmail.com>
# redcloverbi.wordpress.com for more information
# basic backup and restore script for pentaho in Production enviroment doc
# https://help.pentaho.com/Documentation/6.1/0P0/000/020
# https://help.pentaho.com/Documentation/6.1/0P0/000/Backup_and_Restore_Pentaho_Repositories
set -e
set -u
DATE=$(date +"%Y%m%d")
PENTAHO_DIR=''
TYPEACCTION=''
URL=''
USER=''
PASS=''
FILE=''
LOGFILE=''
CHARSET=''
WITHMANIFEST=''
NAMEFILE=''
OVERWRITE=''
function _console(){
local message=${1:-''}
[[ -n "$message" ]] && echo -e "$message"
}
function _die(){
local message=${1:-''}
local exit_code=${2:-2}
_console "$message"
exit $exit_code
}
function _status(){
echo $?
case $? in
1) _die "Publish to server failed" 1;;
2) _die "Publish to server failed" 2;;
3) _console "Publish successful";;
5) _die "Authentication to the publish server failed. Username or password is incorrect." 5;;
6) _die "Datasource publish failed" 6;;
7) _console "XMLA catalog already exists";;
8) _console "Schema already exists";;
9) _console "Content about to be published already exists";;
10) _die "Error publishing to the server due to prohibited symbols in the name of the content" 10;;
0) _console "Everything ok ";;
*) _console "Unknown error code: $?";;
esac
}
function rsync_mode(){
local fileOrigin =${1.-''}
local fileDestination =${2.-''}
_console "rsync -avzc --no-whole-file" $fileOrigin $fileDestination
rsync -avzc --no-whole-file ${fileOrigin} ${fileDestination}
}
function backup (){
local typeAcction=${1:-'backup'}
local url=${2:-'http://localhost:8080/pentaho/&#39;}
local user=${3:-'admin'}
local password=${4:-'password'}
local file=${5:-'/tmp/'}
local logfile=${6:-'/tmp/'}
local charset=${7:-'UTF-8'}
local withManifest=${8:-true}
local nameFile=${9:-''}
local direction=${11:-''}
cd ${direction}
# ./import-export.sh --backup --url=http://localhost:8080/pentaho --username=admin --password=password --file-path=/home/Downloads/backup.zip --logfile=/temp/logfile.log
cmd="time import-export.sh --${typeAcction} --url=${url} --username=${user} --password=${password} --file-path=${file}${nameFile}-$DATE.zip --logfile=${logfile}logfile.log --charset=${charset} --withManifest=${withManifest}"
_console "Executing: $cmd"
sleep 1
eval $cmd
_status
}
function restore (){
local typeAcction=${1:-'restore'}
local url=${2:-'http://localhost:8080/pentaho/&#39;}
local user=${3:-'admin'}
local password=${4:-'password'}
local file=${5:-'/tmp/'}
local logfile=${6:-'/tmp/'}
local charset=${7:-'UTF-8'}
local withManifest=${8:-true}
local nameFile=${9:-''}
local overwrite=${10:-true}
local direction=${11:-''}
cd ${direction}
# ./import-export.sh --restore --url=http://localhost:8080/pentaho --username=admin --password=password --file-path=/home/Downloads/backup.zip --overwrite=true --logfile=/temp/logfile.log
cmd="time import-export.sh --${typeAcction} --url=${url} --username=${user} --password=${password} --file-path=${file}${nameFile}-$DATE.zip --logfile=${logfile}logfile.log --charset=${charset} --overwrite=${overwrite}"
_console "Executing: $cmd"
sleep 1
eval $cmd
_status
}
function help(){
_console "Usage: pentaho_backup system .sh <[options]>"
_console "Options:"
_console " typeAcction | t = restore or backup"
_console " url | l = pentaho url"
_console " user| u = pentaho user (admin)"
_console " password | p = password of pentaho user"
_console " file | f = path of backup or restore"
_console " logfile | log = log file"
_console " charset |c = charset system (UTf-8)"
_console " withManifest | w = include manifest"
_console " nameFile | n = file to backup or restore"
_console " direction | d = pentaho file directiron"
_console " overwrite | o = over write the solution"
exit 0
}
##
# ::main::
#
for i in `seq 1 $#`; do
eval OPTION="\$$i"
OPTARG=$(echo $OPTION | cut -d'=' -f2)
OPTION=$(echo $OPTION | cut -d'=' -f1)
case $OPTION in
--direction | -d ) PENTAHO_DIR=${OPTARG};;
--typeAcction | -t ) TYPEACCTION=${OPTARG};;
--url | -l ) URL=${OPTARG};;
--user | -u ) USER=${OPTARG};;
--pass | -p ) PASS=${OPTARG};;
--file | -f ) FILE=${OPTARG};;
--logfile | -log ) LOGFILE=${OPTARG};;
--charset | -c ) CHARSET=${OPTARG};;
--withManifest| -w ) WITHMANIFEST=${OPTARG};;
--nameFile | -n ) NAMEFILE=${OPTARG};;
--overwrite | -o ) OVERWRITE=${OPTARG};;
--help | -h ) help;;
esac
done
if [ "$TYPEACCTION" == "backup" ]; then
echo $TYPEACCTION
backup $TYPEACCTION $URL $USER $PASS $FILE $LOGFILE $CHARSET $WITHMANIFEST $NAMEFILE $PENTAHO_DIR
_console "Backup finished"
if [ "$RSYNC" == "true"]; then
rsync_mode $FILE $RSYNC
_console "rsync finished"
fi
else
restore $TYPEACCTION $URL $USER $PASS $FILE $LOGFILE $OVERWRITE
_console "Restore finished"
fi

Un comentario en “Backup y Restore en #Pentaho de forma facil

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.