entrypoint.sh 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #!/bin/bash
  2. # Variables d'environnement
  3. BACKUP_DIR=${BACKUP_DIR:-"/backups"}
  4. DIRECTORIES=${DIRECTORIES:-"/source /source2"}
  5. RETENTION_DAYS=${RETENTION_DAYS:-14}
  6. # Array contenant les dossiers à sauvegarder (split des espaces)
  7. DIRECTORIES_ARRAY=($DIRECTORIES)
  8. # Création du dossier de backup s'il n'existe pas
  9. if [ ! -d "$BACKUP_DIR" ]; then
  10. echo "ERROR: Backup directory does not exist!"
  11. exit 1
  12. fi
  13. # Boucle pour chaque dossier dans l'array
  14. for dir in "${DIRECTORIES_ARRAY[@]}"; do
  15. # Vérification si le dossier existe
  16. if [ ! -d "$dir" ]; then
  17. echo "WARNING: Source directory $dir does not exist."
  18. continue
  19. fi
  20. # Création du nom de fichier de backup avec la date
  21. base_name=$(basename "$dir")
  22. file_name="${BACKUP_DIR}/${base_name}_$(date +%Y%m%d).tar.gz"
  23. # Création du backup zip
  24. tar -czf "$file_name" "$dir"
  25. echo "INFO: Backup of '$dir' successful: $file_name"
  26. done
  27. # Suppression des backups plus vieux que ${RETENTION_DAYS} jours
  28. find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +${RETENTION_DAYS} -delete
  29. echo "INFO: Cleaning of old backups done."