| 123456789101112131415161718192021222324252627282930313233343536 |
- #!/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."
|