Archivo de la categoría: backup

[Tip] Duplicity Error: The file specification cannot match any files in the base directory

Buenas.

Si trabajáis con Alfresco, de cara a la estrategia a seguir para implantar un sistema de backup y restore, seguramente os habréis topado con la utilidad BART. Pues bien, una vez configurado todo el sistema, al intentar lanzar un comando para realizar un backup, el script nos lanza el siguiente error:

Fatal Error: The file specification
/home/cristina/alfresco_backup/alfresco-db-backup
cannot match any files in the base directory
/opt/alfresco-5.2.e
Useful file specifications begin with the base directory or some
pattern (such as '**') which matches the base directory.

El error está relacionado con este problema, es decir, un problema con cómo está montado los include y exclude en la función filesBackup de dentro del archivo alfresco-bart.sh, deberemos tocar esa función para introducir “**” al comienzo y al final de cada variable.

Original:

function filesBackup {
# Getting a variable to know all includes and excludes
FILES_DIR_INCLUDES="$ALF_INSTALLATION_DIR"

if [ -d "$INDEXES_BACKUP_DIR" ]; then
OPT_INDEXES_BACKUP_DIR=" --exclude $INDEXES_BACKUP_DIR"
fi
if [ -d "$INDEXES_DIR" ]; then
OPT_INDEXES_DIR=" --exclude $INDEXES_DIR"
fi
if [ -d "$ALF_CONTENTSTORE" ]; then
OPT_ALF_CONTENTSTORE=" --exclude $ALF_CONTENTSTORE"
fi
if [ -d ${ALF_DIRROOT}/contentstore.deleted ]; then
OPT_ALF_CONTENSTORE_DELETED=" --exclude ${ALF_DIRROOT}/contentstore.deleted"
fi
if [ -d "$ALF_CACHED_CONTENTSTORE" ]; then
OPT_CACHED_CONTENTSTORE=" --exclude $CACHED_CONTENTSTORE"
fi
if [ -d "$ALF_CONTENTSTORE2" ]; then
OPT_ALF_CONTENTSTORE2=" --exclude $ALF_CONTENTSTORE2"
fi
if [ -d "$ALF_CONTENTSTORE3" ]; then
OPT_ALF_CONTENTSTORE3=" --exclude $ALF_CONTENTSTORE3"
fi
if [ -d "$ALF_CONTENTSTORE4" ]; then
OPT_ALF_CONTENTSTORE4=" --exclude $ALF_CONTENTSTORE4"
fi
if [ -d "$ALF_CONTENTSTORE5" ]; then
OPT_ALF_CONTENTSTORE5=" --exclude $ALF_CONTENTSTORE5"
fi
if [ -d "$LOCAL_BACKUP_DB_DIR" ]; then
OPT_LOCAL_BACKUP_DB_DIR=" --exclude $LOCAL_BACKUP_DB_DIR"
fi

echo "$LOG_DATE_LOG - $BART_LOG_TAG Backing up the Alfresco files to $BACKUPTYPE" >> $ALFBRT_LOG_FILE
echo "$LOG_DATE_LOG - $BART_LOG_TAG Starting backup - Alfresco files" >> $ALFBRT_LOG_FILE
echo "$LOG_DATE_LOG - $BART_LOG_TAG Running command - $DUPLICITYBIN $PARAMS $FILES_DIR_INCLUDES $OPT_INDEXES_BACKUP_DIR $OPT_INDEXES_DIR $OPT_ALF_CONTENTSTORE $OPT_ALF_CONTENSTORE_DELETED $OPT_CACHED_CONTENTSTORE $OPT_ALF_CONTENTSTORE2 $OPT_ALF_CONTENTSTORE3 $OPT_ALF_CONTENTSTORE4 $OPT_ALF_CONTENTSTORE5 $OPT_LOCAL_BACKUP_DB_DIR $OPT_LOCAL_DB_DIR $DEST/files" >> $ALFBRT_LOG_FILE

# files backup itself
$DUPLICITYBIN $PARAMS $FILES_DIR_INCLUDES $OPT_INDEXES_BACKUP_DIR $OPT_INDEXES_DIR \
$OPT_ALF_CONTENTSTORE $OPT_ALF_CONTENSTORE_DELETED $OPT_CACHED_CONTENTSTORE \
$OPT_ALF_CONTENTSTORE2 $OPT_ALF_CONTENTSTORE3 $OPT_ALF_CONTENTSTORE4 $OPT_ALF_CONTENTSTORE5 \
$OPT_LOCAL_BACKUP_DB_DIR $OPT_LOCAL_DB_DIR $DEST/files >> $ALFBRT_LOG_FILE
echo "$LOG_DATE_LOG - $BART_LOG_TAG Files backup done!" >> $ALFBRT_LOG_FILE
}

Corregido:

unction filesBackup {
# Getting a variable to know all includes and excludes
FILES_DIR_INCLUDES="$ALF_INSTALLATION_DIR"

if [ -d "$INDEXES_BACKUP_DIR" ]; then
OPT_INDEXES_BACKUP_DIR=" --exclude **$INDEXES_BACKUP_DIR**"
fi
if [ -d "$INDEXES_DIR" ]; then
OPT_INDEXES_DIR=" --exclude **$INDEXES_DIR**"
fi
if [ -d "$ALF_CONTENTSTORE" ]; then
OPT_ALF_CONTENTSTORE=" --exclude **$ALF_CONTENTSTORE**"
fi
if [ -d ${ALF_DIRROOT}/contentstore.deleted ]; then
OPT_ALF_CONTENSTORE_DELETED=" --exclude **${ALF_DIRROOT}/contentstore.deleted**"
fi
if [ -d "$ALF_CACHED_CONTENTSTORE" ]; then
OPT_CACHED_CONTENTSTORE=" --exclude **$CACHED_CONTENTSTORE**"
fi
if [ -d "$ALF_CONTENTSTORE2" ]; then
OPT_ALF_CONTENTSTORE2=" --exclude **$ALF_CONTENTSTORE2**"
fi
if [ -d "$ALF_CONTENTSTORE3" ]; then
OPT_ALF_CONTENTSTORE3=" --exclude **$ALF_CONTENTSTORE3**"
fi
if [ -d "$ALF_CONTENTSTORE4" ]; then
OPT_ALF_CONTENTSTORE4=" --exclude **$ALF_CONTENTSTORE4**"
fi
if [ -d "$ALF_CONTENTSTORE5" ]; then
OPT_ALF_CONTENTSTORE5=" --exclude **$ALF_CONTENTSTORE5**"
fi
if [ -d "$LOCAL_BACKUP_DB_DIR" ]; then
OPT_LOCAL_BACKUP_DB_DIR=" --exclude **$LOCAL_BACKUP_DB_DIR**"
fi

echo "$LOG_DATE_LOG - $BART_LOG_TAG Backing up the Alfresco files to $BACKUPTYPE" >> $ALFBRT_LOG_FILE
echo "$LOG_DATE_LOG - $BART_LOG_TAG Starting backup - Alfresco files" >> $ALFBRT_LOG_FILE
echo "$LOG_DATE_LOG - $BART_LOG_TAG Running command - $DUPLICITYBIN $PARAMS $FILES_DIR_INCLUDES $OPT_INDEXES_BACKUP_DIR $OPT_INDEXES_DIR $OPT_ALF_CONTENTSTORE $OPT_ALF_CONTENSTORE_DELETED $OPT_CACHED_CONTENTSTORE $OPT_ALF_CONTENTSTORE2 $OPT_ALF_CONTENTSTORE3 $OPT_ALF_CONTENTSTORE4 $OPT_ALF_CONTENTSTORE5 $OPT_LOCAL_BACKUP_DB_DIR $OPT_LOCAL_DB_DIR $DEST/files" >> $ALFBRT_LOG_FILE

# files backup itself
$DUPLICITYBIN $PARAMS $FILES_DIR_INCLUDES $OPT_INDEXES_BACKUP_DIR $OPT_INDEXES_DIR \
$OPT_ALF_CONTENTSTORE $OPT_ALF_CONTENSTORE_DELETED $OPT_CACHED_CONTENTSTORE \
$OPT_ALF_CONTENTSTORE2 $OPT_ALF_CONTENTSTORE3 $OPT_ALF_CONTENTSTORE4 $OPT_ALF_CONTENTSTORE5 \
$OPT_LOCAL_BACKUP_DB_DIR $OPT_LOCAL_DB_DIR $DEST/files >> $ALFBRT_LOG_FILE
echo "$LOG_DATE_LOG - $BART_LOG_TAG Files backup done!" >> $ALFBRT_LOG_FILE
}

Si os fijáis la única diferencia está en cómo se construye la llamada que se va a ejecutar en ese comando:
Original:

OPT_INDEXES_BACKUP_DIR=" --exclude $INDEXES_BACKUP_DIR"

Corregido:

OPT_INDEXES_BACKUP_DIR=" --exclude **$INDEXES_BACKUP_DIR**"

 

Espero que os sirve de ayuda :-)

¡Ah! Si queréis he he publicado en la comunidad de Venzia IT una guía completa para aprender más sobre Backup y Restore en Alfresco (aquí).

¡Un saludo! ^^