forked from ScoDoc/ScoDoc
62 lines
1.8 KiB
Bash
Executable File
62 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# ScoDoc: save all user data (database, configs, images, archives...) in separate directory
|
|
#
|
|
# Utile pour migrer ScoDoc version 9 (et plus) d'un serveur a un autre
|
|
# Executer en tant que scodoc sur le serveur d'origine.
|
|
# Utiliser - pour sortir sur la sortie standard (eg pipe dans ssh...)
|
|
#
|
|
# E. Viennet, Sept 2011, Aug 2020, Aug 21
|
|
#
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|
source "$SCRIPT_DIR/config.sh"
|
|
source "$SCRIPT_DIR/utils.sh"
|
|
|
|
if [ "$(id -nu)" != "$SCODOC_USER" ]
|
|
then
|
|
echo "$0: script must be runned as user $SCODOC_USER"
|
|
exit 1
|
|
fi
|
|
|
|
echo "vérification de la configuration..."
|
|
DB_CURRENT=$(cd $SCODOC_DIR && source venv/bin/activate && flask scodoc-database -n)
|
|
if [ $DB_CURRENT != 'SCODOC' ]; then
|
|
echo "Ce script ne peut transférer les données que depuis une base nommée SCODOC (c'est normalement le cas pour un serveur en production)"
|
|
echo "Annulation"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Ce script est utile pour transférer toutes les données d'un serveur ScoDoc 9"
|
|
echo "à un autre ScoDoc 9."
|
|
echo "Il est vivement recommandé de mettre à jour votre ScoDoc avant."
|
|
echo ""
|
|
echo -n "Voulez-vous poursuivre cette sauvegarde ? (y/n) [n]"
|
|
read -r ans
|
|
if [ ! "$(norm_ans "$ans")" = 'Y' ]
|
|
then
|
|
echo "Annulation"
|
|
exit 1
|
|
fi
|
|
|
|
# Destination
|
|
if [ ! $# -eq 1 ]
|
|
then
|
|
echo "Usage: $0 destination_file"
|
|
echo "(- sort sur stdout)"
|
|
echo "Exemple: $0 /tmp/mon-scodoc.tgz"
|
|
exit 1
|
|
fi
|
|
DEST=$1
|
|
db_name="$SCODOC_DB_PROD" # SCODOC
|
|
|
|
# dump dans /opt/scodoc-data/SCODOC.dump
|
|
echo "sauvegarde de la base de données"
|
|
pg_dump --format=custom --file="$SCODOC_VAR_DIR/$db_name.dump" "$db_name" || die "Error dumping database"
|
|
|
|
echo "création du fichier d'archivage..."
|
|
# tar scodoc-data vers le fichier indiqué ou stdout
|
|
(cd $(dirname "$SCODOC_VAR_DIR"); tar cfz "$DEST" $(basename "$SCODOC_VAR_DIR")) || die "Error archiving data"
|
|
|