Version finale du script Gitea-Backup avec rotation des sauvegardes. il faut paramétrer en dur le nombre de jours à conserver (voir script : varibale NB_JOURS_A_GARDER.

This commit is contained in:
MilesTEG 2021-05-05 16:46:03 +02:00
parent 9c82570b8f
commit f9786d7a6d

View File

@ -1,3 +1,4 @@
#!/bin/bash
##==============================================================================================
## ##
## Script gitea-backup.sh ##
@ -75,11 +76,17 @@ GITEA_DATA_DIR=data
NOM_CONTENEUR=gitea
# ID de l'utilisateur du NAS qui a les droits sur le conteneur
ID_USER_NAS=1000
ID_USER_NAS=1060
# Nombre de jours d'archives-backup à garder (ça inclus le jour actuel)
NB_JOURS_A_GARDER=10
##──── ────────────────────────────────────────────────────────────────────────────────────────
##──── ────────────────────────────────────────────────────────────────────────────────────────
function pause() {
read -p "$*"
}
echo "$(date "+%R:%S - ") Script de sauvegarde des données du conteneur Gitea"
@ -191,22 +198,23 @@ if [ $mode_backup -eq 0 ] || [ $mode_backup -eq 2 ]; then
echo "###############################################################################"
cd $GITEA_DOCKER_DIR # Même si on est censé déjà être là...
retour_cmd=1111 # Valeur reset
echo -e "\t-- Extinction du conteneur $(docker stop $NOM_CONTENEUR)\n"
retour_cmd=$? # Le code d'exit de la fonction est stocké dans cette variable.
if [ $retour_cmd -ne 0 ]; then
if [ $retour_cmd -eq 1111 ]; then
echo "### DEBUG : soucis avec la récupération du retour de commande #1470000 "
exit 1470000
fi
echo "!! Le conteneur $NOM_CONTENEUR ne peut pas être arrêté..."
echo "!! Fin du script. Erreur 777"
echo
exit 777
fi echo "-- Création de l'archive du dossier $GITEA_DATA_DIR"
#retour_cmd=1111 # Valeur reset
echo "-- Extinction du conteneur $(docker stop $NOM_CONTENEUR) : OK."
# retour_cmd=$? # Le code d'exit de la fonction est stocké dans cette variable.
# if [ $retour_cmd -ne 0 ]; then
# if [ $retour_cmd -eq 1111 ]; then
# echo "### DEBUG : soucis avec la récupération du retour de commande #1470000 "
# exit 1470000
# fi
# echo "!! Le conteneur $NOM_CONTENEUR ne peut pas être arrêté..."
# echo "!! Fin du script. Erreur 777"
# echo
# exit 777
# fi
echo "-- Création de l'archive du dossier $GITEA_DATA_DIR"
# Compression tar.gz :
tar -czf $GITEA_BACKUP_DIR/Gitea-Data-Backup-`date +%Y-%m-%d--%Hh%Mm%Ss`.tar.gz ./$GITEA_DATA_DIR
#tar -czf $GITEA_BACKUP_DIR/Gitea-Data-Backup-`date +%Y-%m-%d--%Hh%Mm%Ss`.tar.gz ./$GITEA_DATA_DIR
# Compression 7z après obtention d'un .tar
# On Linux/Unix, in order to backup directories you must use tar :
@ -216,19 +224,42 @@ if [ $mode_backup -eq 0 ] || [ $mode_backup -eq 2 ]; then
echo "-- Archive de tout le dossier $GITEA_DATA_DIR créée."
retour_cmd=1111 # Valeur reset
echo -e "\t-- Redémarrage du conteneur $(docker start $NOM_CONTENEUR)\n"
retour_cmd=$? # Le code d'exit de la fonction est stocké dans cette variable.
if [ $retour_cmd -ne 0 ]; then
if [ $retour_cmd -eq 1111 ]; then
echo "### DEBUG : soucis avec la récupération du retour de commande #1470000 "
exit 1470000
fi
echo "!! Le conteneur $NOM_CONTENEUR ne peut pas être redémarré..."
echo "!! Fin du script. Erreur 777"
echo
exit 777
fi
# retour_cmd=1111 # Valeur reset
echo "-- Redémarrage du conteneur $(docker start $NOM_CONTENEUR) : OK."
# retour_cmd=$? # Le code d'exit de la fonction est stocké dans cette variable.
# if [ $retour_cmd -ne 0 ]; then
# if [ $retour_cmd -eq 1111 ]; then
# echo "### DEBUG : soucis avec la récupération du retour de commande #1470000 "
# exit 1470000
# fi
# echo "!! Le conteneur $NOM_CONTENEUR ne peut pas être redémarré..."
# echo "!! Fin du script. Erreur 777"
# echo
# exit 777
# fi
# Section concernant la rotation des sauvegardes.
echo
echo "-- Rotation des sauvegardes anciennes selon le nombre de jours d'archives à garder (=$NB_JOURS_A_GARDER) incluant ce jour :"
echo
echo
echo "-- -- Utilisation de la fonction find pour trouver les fichiers de plus de $nb_jours_a_garder jours (incluant ce jour)."
echo "-- -- Les fichiers suivants seront supprimés :"
find $GITEA_BACKUP_DIR/* -name 'Gitea-Data-Backup*' -mtime +"$((NB_JOURS_A_GARDER - 1))" -exec ls -lat --color {} \;
# Utile pour débugguer avant de supprimer réellement les fichiers.
#pause '--DEBUG-- Appuyer sur la touche [Entrer] pour continuer...'
echo "-- -- Suppression de ces fichiers..."
find $GITEA_BACKUP_DIR/* -name 'Gitea-Data-Backup*' -mtime +"$((NB_JOURS_A_GARDER - 1))" -exec rm -v {} \;
############################################################
# Cette partie peut être commentée
echo
echo "-- -- Il reste donc les fichiers suivants :"
ls -lat --color $GITEA_BACKUP_DIR/Gitea-Data-Backup*
############################################################
echo "###############################################################################"
echo "-- Processus de sauvegarde par création d'archive terminé."