From 524d651553dd4013c00fbee227a6df5a2c44dc32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Thu, 23 Nov 2023 11:04:47 +0100 Subject: [PATCH] Rename script 'clusters.cron-backups.sh' to 'clusters.backup-multiple-servers.sh' --- deployment/.env.dist | 2 +- deployment/deployment.md | 2 +- .../clusters.backup-multiple-servers.sh | 89 +++++++++++++++++++ deployment/scripts/clusters.cron-backups.sh | 89 ------------------- 4 files changed, 91 insertions(+), 91 deletions(-) create mode 100755 deployment/scripts/clusters.backup-multiple-servers.sh delete mode 100755 deployment/scripts/clusters.cron-backups.sh diff --git a/deployment/.env.dist b/deployment/.env.dist index 38adc9027..14d793e06 100644 --- a/deployment/.env.dist +++ b/deployment/.env.dist @@ -1,7 +1,7 @@ # branding folder used for "docker compose up" run in deployment folder CONFIGURATION=stage.ocelot.social -# used in "scripts/clusters.cron-backups.sh" +# used in "scripts/clusters.backup-multiple-servers.sh" BACKUP_CONFIGURATIONS="stage.ocelot.social stage.wir.social" # if '<= 0' no backups will be deleted BACKUP_SAVED_BACKUPS_NUMBER=7 \ No newline at end of file diff --git a/deployment/deployment.md b/deployment/deployment.md index cb7815249..7a9438a3c 100644 --- a/deployment/deployment.md +++ b/deployment/deployment.md @@ -100,7 +100,7 @@ To actually save all the backups run: # save all backups listed in 'BACKUP_CONFIGURATIONS' # delete all backups older then the 'BACKUP_SAVED_BACKUPS_NUMBER' newest ones -$ scripts/clusters.cron-backups.sh +$ scripts/clusters.backup-multiple-servers.sh ``` The backups will be saved into your networks folders `backup` folder in a new folder with the date and time. diff --git a/deployment/scripts/clusters.backup-multiple-servers.sh b/deployment/scripts/clusters.backup-multiple-servers.sh new file mode 100755 index 000000000..290f09314 --- /dev/null +++ b/deployment/scripts/clusters.backup-multiple-servers.sh @@ -0,0 +1,89 @@ +#!/bin/bash + +# time stamp +printf "\nMultiple backups started at:\n " +date + +# base setup +SCRIPT_PATH=$(realpath $0) +SCRIPT_DIR=$(dirname $SCRIPT_PATH) + +# save old CONFIGURATION for later reset +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" + 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" + exit 1 +fi + +# 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 + +# 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 +echo "Cancel by ^C. You have 15 seconds" +# wait for the admin to react +sleep 15 + +printf "\n" + +for i in "${CONFIGURATIONS_ARRAY[@]}" +do + 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" + # TODO: replace 'ls' by 'find . -type d -maxdepth 1'? description: https://unix.stackexchange.com/questions/28939/how-to-delete-the-oldest-directory-in-a-given-directory + while [ `ls -1 | wc -l` -gt $keep ]; do + oldest=`ls -c1 | head -1` + echo " $oldest" + rm -rf $oldest + done + + printf "Keep the last %d backups:\n " $BACKUP_SAVED_BACKUPS_NUMBER + ls + + cd $SCRIPT_DIR + else + echo "!!! ATTENTION: No backups are deleted !!!" + fi + + printf "\n" +done + +# reset CONFIGURATION to old +# TODO: clearily if this is the same as: $ export CONFIGURATION=${SAVE_CONFIGURATION}" +CONFIGURATION=$SAVE_CONFIGURATION +echo "Reset to CONFIGURATION=$CONFIGURATION" diff --git a/deployment/scripts/clusters.cron-backups.sh b/deployment/scripts/clusters.cron-backups.sh deleted file mode 100755 index 193865856..000000000 --- a/deployment/scripts/clusters.cron-backups.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash - -# time stamp -printf "\nMultiple backups started at:\n " -date - -# base setup -SCRIPT_PATH=$(realpath $0) -SCRIPT_DIR=$(dirname $SCRIPT_PATH) - -# save old CONFIGURATION for later reset -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" - 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" - exit 1 -fi - -# 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 - -# 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 -echo "Cancel by ^C. You have 15 seconds" -# # wait for the admin to react -# sleep 15 - -# printf "\n" - -# for i in "${CONFIGURATIONS_ARRAY[@]}" -# do -# 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" -# # TODO: replace 'ls' by 'find . -type d -maxdepth 1'? description: https://unix.stackexchange.com/questions/28939/how-to-delete-the-oldest-directory-in-a-given-directory -# while [ `ls -1 | wc -l` -gt $keep ]; do -# oldest=`ls -c1 | head -1` -# echo " $oldest" -# rm -rf $oldest -# done - -# printf "Keep the last %d backups:\n " $BACKUP_SAVED_BACKUPS_NUMBER -# ls - -# cd $SCRIPT_DIR -# else -# echo "!!! ATTENTION: No backups are deleted !!!" -# fi - -# printf "\n" -# done - -# # reset CONFIGURATION to old -# # TODO: clearily if this is the same as: $ export CONFIGURATION=${SAVE_CONFIGURATION}" -# CONFIGURATION=$SAVE_CONFIGURATION -# echo "Reset to CONFIGURATION=$CONFIGURATION"