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