backup-scripts/copyattr_zfs.sh

38 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Variables
REMOTE_USER="root"
REMOTE_HOST="195.201.173.157"
REMOTE_PORT=21253
REMOTE_ZFS_POOL="data"
LOCAL_DATASETS=("data/database" "data/minio" "data/standard")
for dataset in "${LOCAL_DATASETS[@]}"; do
echo "🔍 Copie des propriétés personnalisées du dataset $dataset..."
if [[ "$dataset" == *"@"* ]]; then
echo "⚠️ Ignoré (snapshot détecté) : $dataset"
continue
fi
REMOTE_DATASET="$REMOTE_ZFS_POOL/$(basename "$dataset")"
# Lecture manuelle propre
mapfile -t props < <(zfs get -H -o property,value all "$dataset")
for line in "${props[@]}"; do
prop=$(echo "$line" | awk '{print $1}')
val=$(echo "$line" | cut -f2- | sed -E 's/^[^[:space:]]+[[:space:]]+//')
if [[ "$prop" == *:* && -n "$val" ]]; then
echo "🔧 $prop=$val$REMOTE_DATASET sur $REMOTE_HOST"
ssh -p "$REMOTE_PORT" -o StrictHostKeyChecking=no "$REMOTE_USER@$REMOTE_HOST" \
"zfs set \"$prop=$val\" \"$REMOTE_DATASET\"" || echo "⚠️ Erreur propriété $prop sur $REMOTE_DATASET"
fi
done
echo "✅ Propriétés personnalisées copiées pour $dataset$REMOTE_DATASET."
done
echo "🎉 Toutes les propriétés utilisateurs *:* ZFS ont été copiées vers $REMOTE_HOST."