From 745c9d6ff9821bed86e4ea5696d70725032724ca Mon Sep 17 00:00:00 2001 From: Tellsanguis Date: Wed, 18 Mar 2026 10:48:37 +0000 Subject: [PATCH] Ajout d'une fonction d'exclusion de datasets --- zfs-nfs-replica.sh | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/zfs-nfs-replica.sh b/zfs-nfs-replica.sh index 1fef826..9653f14 100644 --- a/zfs-nfs-replica.sh +++ b/zfs-nfs-replica.sh @@ -18,13 +18,13 @@ # - Fichiers d'état séparés par pool (tailles, UUIDs disques, erreurs critiques) # # Auteur : BENE Maël -# Version : 2.4.1 +# Version : 2.4.2 # set -euo pipefail # Configuration -SCRIPT_VERSION="2.4.1" +SCRIPT_VERSION="2.4.2" REPO_URL="https://forgejo.tellserv.fr/Tellsanguis/zfs-sync-nfs-ha" SCRIPT_URL="${REPO_URL}/raw/branch/main/zfs-nfs-replica.sh" SCRIPT_PATH="${BASH_SOURCE[0]}" @@ -58,6 +58,11 @@ MIN_REMOTE_RATIO=50 # Le distant doit avoir au moins 50% de la taille du local # Mettre à 0 ou laisser vide pour désactiver la limitation BANDWIDTH_LIMIT_MBS=40 # Limite par défaut: 40 MB/s +# Datasets à exclure de la réplication syncoid (gérés par un autre outil, ex: Proxmox Replication) +# Format: noms courts des datasets (sans le nom du pool) +# Exemple: EXCLUDE_DATASETS=("pbs-backups" "vm-100-disk-0") +EXCLUDE_DATASETS=("pbs-backups") + # Configuration des logs (rotation 2 semaines) LOG_DIR="/var/log/zfs-nfs-replica" LOG_RETENTION_DAYS=14 @@ -1199,6 +1204,14 @@ replicate_pool() { local first_level_datasets first_level_datasets=$(zfs list -H -o name -r "$pool" -t filesystem,volume -d 1 | grep -v "^${pool}$") + # Appliquer les exclusions définies dans EXCLUDE_DATASETS + if [[ ${#EXCLUDE_DATASETS[@]} -gt 0 ]]; then + for excl in "${EXCLUDE_DATASETS[@]}"; do + first_level_datasets=$(grep -v "^${pool}/${excl}$" <<< "$first_level_datasets") + log "info" "Dataset exclu: ${pool}/${excl}" + done + fi + if [[ -z "$first_level_datasets" ]]; then log "error" "Aucun dataset trouvé sous ${pool}" flock -u ${lockfd}