HomeLab/infra_conf/tarbackup.sh
griffix 58ed343aa7
backups pi5
maj des backups + discord notification
2025-09-23 19:52:45 +02:00

47 lines
No EOL
1.6 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# ------------------------------------------------------------
# Usage : ./archiver_et_nettoie.sh <répertoire_source>
# ------------------------------------------------------------
# ---------- 1⃣ Vérifications initiales ----------
if [[ -z "$1" ]]; then
echo "Usage : $0 <répertoire_source>"
exit 1
fi
SRC_DIR="$1"
if [[ ! -d "$SRC_DIR" ]]; then
echo "Erreur : '$SRC_DIR' nest pas un répertoire valide."
exit 1
fi
# ---------- 2⃣ Dossier de destination ----------
OUT_DIR="/media/Seagate/archives" # crée un sousdossier « archives » à côté du répertoire source
mkdir -p "$OUT_DIR" # le créer sil nexiste pas encore
# ---------- 3⃣ Création des archives ----------
cd "$SRC_DIR" || exit 1
for dir in */ ; do
[[ -d "$dir" ]] || continue # ignorer les fichiers éventuels
name="${dir%/}" # nom du sousdossier sans le slash final
timestamp=$(date +"%Y%m%d_%H%M%S") # horodatage au format souhaité
archive_name="${name}_${timestamp}.tar.gz"
# Crée l'archive dans le répertoire de sortie
tar -czf "${OUT_DIR}/${archive_name}" "$name"
echo "✅ Archive créée : ${OUT_DIR}/${archive_name}"
done
# ---------- 4⃣ Nettoyage des archives >30jours ----------
# find <dossier> -type f -name "*.tar.gz" -mtime +30 -delete
# -mtime +30 → fichier modifié il y a plus de 30jours
# -delete → suppression sécurisée
echo "🧹 Suppression des archives de plus de 30jours…"
find "$OUT_DIR" -type f -name "*.tar.gz" -mtime +30 -print -delete
echo "✅ Nettoyage terminé."