mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 15:25:57 +00:00
92 lines
2.3 KiB
Bash
Executable File
92 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# time stamp
|
|
printf "\n\nMultiple backups started at:\n "
|
|
date
|
|
|
|
# base setup
|
|
SCRIPT_PATH=$(realpath $0)
|
|
SCRIPT_DIR=$(dirname $SCRIPT_PATH)
|
|
|
|
# save old CONFIGURATION for later reset
|
|
export SAVE_CONFIGURATION=$CONFIGURATION
|
|
|
|
# export all variables in "../.env"
|
|
set -a
|
|
source ${SCRIPT_DIR}/../.env
|
|
set +a
|
|
|
|
# check BACKUP_CONFIGURATIONS
|
|
if [[ -z "$BACKUP_CONFIGURATIONS" ]]; then
|
|
#%! echo "You must provide a BACKUP_CONFIGURATIONS via environment variable"
|
|
printf "!!! You must provide a BACKUP_CONFIGURATIONS via environment variable !!!\n"
|
|
exit 1
|
|
fi
|
|
|
|
# check BACKUP_SAVED_BACKUPS_NUMBER
|
|
if [[ -z ${BACKUP_SAVED_BACKUPS_NUMBER} ]]; then
|
|
#%! echo "You must provide a BACKUP_SAVED_BACKUPS_NUMBER via environment variable"
|
|
printf "!!! You must provide a BACKUP_SAVED_BACKUPS_NUMBER via environment variable !!!\n"
|
|
exit 1
|
|
fi
|
|
|
|
# convert configurations to array
|
|
IFS=' ' read -a CONFIGURATIONS_ARRAY <<< "$BACKUP_CONFIGURATIONS"
|
|
|
|
# display the clusters
|
|
printf "Backup the clusters:\n"
|
|
for i in "${CONFIGURATIONS_ARRAY[@]}"
|
|
do
|
|
echo " $i"
|
|
done
|
|
|
|
# deleting backups?
|
|
if (( BACKUP_SAVED_BACKUPS_NUMBER >= 1 )); then
|
|
printf "Keep the last %d backups for all networks.\n" $BACKUP_SAVED_BACKUPS_NUMBER
|
|
else
|
|
echo "!!! ATTENTION: No backups are deleted !!!"
|
|
fi
|
|
|
|
echo "Cancel by ^C. You have 15 seconds"
|
|
# wait for the admin to react
|
|
sleep 15
|
|
|
|
printf "\n"
|
|
|
|
for i in "${CONFIGURATIONS_ARRAY[@]}"
|
|
do
|
|
export CONFIGURATION=$i
|
|
# individual cluster backup
|
|
${SCRIPT_DIR}/cluster.backup.sh
|
|
|
|
# deleting backups?
|
|
if (( BACKUP_SAVED_BACKUPS_NUMBER >= 1 )); then
|
|
# delete all oldest backups, but leave the last BACKUP_SAVED_BACKUPS_NUMBER
|
|
|
|
keep=$BACKUP_SAVED_BACKUPS_NUMBER
|
|
path="$SCRIPT_DIR/../configurations/$CONFIGURATION/backup/"
|
|
|
|
cd $path
|
|
|
|
printf "In\n '$path'\n remove:\n"
|
|
while [ `ls -1 | wc -l` -gt $keep ]; do
|
|
oldest=`ls -c1 | sort -n | head -1`
|
|
printf " %s\n" $oldest
|
|
rm -rf $oldest
|
|
done
|
|
|
|
printf "Keep the last %d backups:\n" $BACKUP_SAVED_BACKUPS_NUMBER
|
|
ls -c1 | sort -n | awk '{print " " $0}'
|
|
|
|
cd $SCRIPT_DIR
|
|
else
|
|
echo "!!! ATTENTION: No backups are deleted !!!"
|
|
fi
|
|
|
|
printf "\n"
|
|
done
|
|
|
|
# reset CONFIGURATION to old
|
|
export CONFIGURATION=$SAVE_CONFIGURATION
|
|
echo "Reset to CONFIGURATION=$CONFIGURATION"
|