ScoDoc-PE/tools/save_scodoc_data.sh

71 lines
1.6 KiB
Bash
Raw Normal View History

2020-09-26 16:19:37 +02:00
#!/bin/bash
#
# ScoDoc: save all user data (database, configs, images, archives...) in separate directory
#
# Utile pour migrer ScoDoc d'un serveur a un autre
# Executer en tant que root sur le serveur d'origine
#
# E. Viennet, Sept 2011, Aug 2020, Jul 2021
2020-09-26 16:19:37 +02:00
#
2021-08-02 10:34:28 +02:00
# Le répertoire de ce script:
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
source "$SCRIPT_DIR/config.sh"
source "$SCRIPT_DIR/utils.sh"
2020-09-26 16:19:37 +02:00
2020-12-19 19:22:22 +01:00
check_uid_root "$0"
2020-09-26 16:19:37 +02:00
# Destination directory
if [ ! $# -eq 1 ]
then
echo "Usage: $0 destination_directory"
exit 1
fi
DEST=$1
# remove trailing slashs if needed:
shopt -s extglob
DEST="${DEST%%+(/)}"
if [ ! -e "$DEST" ]
then
echo Creating directory "$DEST"
mkdir "$DEST"
else
echo "Error: Directory " "$DEST" " exists"
echo "remove it or specify another destination !"
exit 2
fi
echo "Stopping ScoDoc..."
2020-12-05 17:29:26 +01:00
scodocctl stop
2020-09-26 16:19:37 +02:00
# Dump all postgres databases
echo "Dumping SQL database..."
chown postgres "$DEST"
su -c "pg_dumpall > \"$DEST\"/scodoc.dump.txt" postgres
2020-12-28 22:09:20 +01:00
if [ ! "$?" -eq 0 ]
2020-09-26 16:19:37 +02:00
then
2020-12-19 19:22:22 +01:00
printf "Error dumping postgresql database\nPlease check that SQL server is running\nAborting.\n"
2020-09-26 16:19:37 +02:00
exit 1
fi
chown root "$DEST"
# ScoDoc archives, configuration, photos, etc.
2020-09-26 16:19:37 +02:00
echo "Copying var/ ..."
cp -rp "$SCODOC_DIR/var" "$DEST"
2020-09-26 16:19:37 +02:00
echo "Copying server logs..."
cp -rp "$SCODOC_DIR/log" "$DEST"
2020-09-26 16:19:37 +02:00
# --- Archive all files in a tarball to ease transfer
echo
echo "Archiving backup files in a $DEST.tgz..."
base=$(basename "$DEST")
2020-12-28 22:09:20 +01:00
(cd "$DEST"/.. || terminate "directory error"; tar cfz "$DEST".tgz "$base")
2020-09-26 16:19:37 +02:00
echo "Done (you can copy " "$DEST"".tgz to destination machine)."