détails bash

This commit is contained in:
Emmanuel Viennet 2022-01-05 16:45:55 +01:00
parent 8a415984c6
commit db9acb67dd

View File

@ -32,32 +32,35 @@ usage() {
if (($# < 1 || $# > 2)) if (($# < 1 || $# > 2))
then then
usage usage
elif [ $# -eq 2 -a $1 != '--keep-env' -a $2 != '--keep-env' ] ; then elif [ $# -eq 2 ] && [ "$1" != "--keep-env" ] && [ "$2" != "--keep-env" ]
then
usage usage
elif [ $# -eq 1 ] ; then elif [ $# -eq 1 ]
then
echo "restauration des données et de la configuration originale (production)" echo "restauration des données et de la configuration originale (production)"
SRC=$1 SRC="$1"
DB_DEST="SCODOC" DB_DEST="SCODOC"
else else
echo "restauration des données dans la configuration actuelle" echo "restauration des données dans la configuration actuelle"
DB_CURRENT=$(su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask scodoc-database -n)") DB_CURRENT=$(su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask scodoc-database -n)")
DB_DEST="$DB_CURRENT" DB_DEST="$DB_CURRENT"
KEEP_ENV=Y KEEP_ENV="Y"
if [ $1 = '--keep-env' ]; then if [ "$1" = "--keep-env" ]
SRC=$2 then
SRC="$2"
else else
SRC=$1 SRC="$1"
fi fi
fi fi
DB_DUMP="${SCODOC_VAR_DIR}"/SCODOC.dump DB_DUMP="${SCODOC_VAR_DIR}"/SCODOC.dump
# Safety check # Safety check
echo "Ce script va remplacer les donnees de votre installation ScoDoc par celles" echo "Ce script va remplacer les données de votre installation ScoDoc par celles"
echo "enregistrées dans le fichier fourni." echo "enregistrées dans le fichier fourni."
echo "Ce fichier doit avoir ete cree par le script save_scodoc9_data.sh." echo "Ce fichier doit avoir été créé par le script save_scodoc9_data.sh."
echo echo
echo "Attention: TOUTES LES DONNEES DE CE SCODOC SERONT REMPLACEES !" echo "Attention: TOUTES LES DONNEES DE CE SCODOC SERONT REMPLACEES !"
echo "Notamment, tous les utilisateurs et departements existants seront effaces !" echo "Notamment, tous les utilisateurs et départements existants seront effacés !"
echo echo
echo "La base SQL $DB_CURRENT sera effacée et remplacée !!!" echo "La base SQL $DB_CURRENT sera effacée et remplacée !!!"
echo echo
@ -65,27 +68,27 @@ echo
SCODOC_VAR_OLD=${SCODOC_VAR_DIR}.old SCODOC_VAR_OLD=${SCODOC_VAR_DIR}.old
if [ -e "$SCODOC_VAR_DIR" ] && [ -e "$SCODOC_VAR_OLD" ] if [ -e "$SCODOC_VAR_DIR" ] && [ -e "$SCODOC_VAR_OLD" ]
then then
echo "une ancienne sauvegarde ('$SCODOC_VAR_OLD' en date du $(stat -c %w $SCODOC_VAR_OLD) ) va être effacée." echo "Une ancienne sauvegarde (\"$SCODOC_VAR_OLD\" en date du $(stat -c %w "$SCODOC_VAR_OLD") ) va être effacée."
echo echo
fi fi
if [ ! -z $KEEP_ENV ] if [ -n "$KEEP_ENV" ]
then then
echo -n "restauration des données sans changement de configuration: Assurez-vous d'avoir arrété le serveur scodoc." echo -n "Restauration des données sans changement de configuration: Assurez-vous d'avoir arrêté le serveur scodoc."
echo echo
fi fi
echo -n "Voulez vous poursuivre la restauration ? (y/n) [n]" echo -n "Voulez-vous poursuivre la restauration ? (y/n) [n]"
read -r ans read -r ans
if [ ! "$(norm_ans "$ans")" = 'Y' ] if [ ! "$(norm_ans "$ans")" = "Y" ]
then then
echo "Annulation de la restauration par l\'utilisateur" echo "Annulation de la restauration par l\'utilisateur"
exit 1 exit 1
fi fi
rm -rf $SCODOC_VAR_OLD || die "Erreur suppression $SCODOC_VAR_OLD" rm -rf "$SCODOC_VAR_OLD" || die "Erreur suppression $SCODOC_VAR_OLD"
# -- Stop ScoDoc # -- Stop ScoDoc
if [ -z $KEEP_ENV ] if [ -z "$KEEP_ENV" ]
then then
echo "Arrêt de scodoc9..." echo "Arrêt de scodoc9..."
systemctl stop scodoc9 systemctl stop scodoc9
@ -104,7 +107,7 @@ fi
# -- Ouverture archive # -- Ouverture archive
echo "Ouverture archive $SRC..." echo "Ouverture archive $SRC..."
(cd $(dirname "$SCODOC_VAR_DIR"); tar xfz "$SRC") || die "Error opening archive" (cd "$(dirname "$SCODOC_VAR_DIR")"; tar xfz "$SRC") || die "Error opening archive"
# -- Ckeck/fix owner # -- Ckeck/fix owner
echo "Vérification du propriétaire..." echo "Vérification du propriétaire..."
@ -121,7 +124,7 @@ su -c "createdb $DB_DEST" "$SCODOC_USER" || die "Erreur création db"
if [ ! -z $KEEP_ENV ] ; then if [ ! -z $KEEP_ENV ] ; then
echo "conservation de la configuration actuelle" echo "conservation de la configuration actuelle"
cp "$SCODOC_VAR_OLD"/.env "$SCODOC_VAR_DIR"/.env cp -p "$SCODOC_VAR_OLD"/.env "$SCODOC_VAR_DIR"/.env
echo "récupération des données..." echo "récupération des données..."
su -c "pg_restore -f - $DB_DUMP | psql -q $DB_DEST" "$SCODOC_USER" >/dev/null || die "Erreur chargement/renommage de la base SQL" su -c "pg_restore -f - $DB_DUMP | psql -q $DB_DEST" "$SCODOC_USER" >/dev/null || die "Erreur chargement/renommage de la base SQL"
su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask db upgrade)" "$SCODOC_USER" su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask db upgrade)" "$SCODOC_USER"