Create transfert_anime-music-serie.sh
This commit is contained in:
90
transfert_anime-music-serie.sh
Normal file
90
transfert_anime-music-serie.sh
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Variables
|
||||||
|
SOURCE_DIR_AN="/serie_music/anime"
|
||||||
|
DEST_DIR_ANIME="/mnt/pve/TVshows/Anime"
|
||||||
|
|
||||||
|
SOURCE_DIR_SE="/serie_music/serie"
|
||||||
|
DEST_DIR_SERIE="/mnt/pve/TVshows/Serie"
|
||||||
|
|
||||||
|
SOURCE_DIR_MU="/serie_music/music"
|
||||||
|
DEST_DIR_MUSIC="/mnt/pve/Music"
|
||||||
|
|
||||||
|
LOCK_FILE="/tmp/pve2omvtransfert.lock" # Fichier de verrouillage
|
||||||
|
|
||||||
|
# Initialiser rapport
|
||||||
|
REPORT="=== Rapport de Transfert ===\n"
|
||||||
|
|
||||||
|
# Fonction pour traiter un couple source/destination
|
||||||
|
transfer_files() {
|
||||||
|
local SOURCE_DIR=$1
|
||||||
|
local DEST_DIR=$2
|
||||||
|
local LABEL=$3 # ex: "Anime", "Série", etc.
|
||||||
|
|
||||||
|
# Vérifier si le répertoire source existe
|
||||||
|
if [ ! -d "$SOURCE_DIR" ]; then
|
||||||
|
REPORT+="❌ $LABEL : Le répertoire source $SOURCE_DIR n'existe pas.\n"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Vérifier s'il y a des fichiers
|
||||||
|
if [ -z "$(ls -A "$SOURCE_DIR")" ]; then
|
||||||
|
REPORT+="ℹ️ $LABEL : Aucun fichier à transférer.\n"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "🛠️ Début de la copie des fichiers de $SOURCE_DIR vers $DEST_DIR."
|
||||||
|
|
||||||
|
# Créer le répertoire de destination s'il n'existe pas
|
||||||
|
mkdir -p "$DEST_DIR"
|
||||||
|
|
||||||
|
# Copie avec rsync (avec gestion d'encodage pour musique)
|
||||||
|
if [ "$LABEL" == "Musique" ]; then
|
||||||
|
rsync -av --iconv=utf-8-mac,utf-8 --progress "$SOURCE_DIR/" "$DEST_DIR/" &> /tmp/rsync_music.log
|
||||||
|
else
|
||||||
|
rsync -av --progress "$SOURCE_DIR/" "$DEST_DIR/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
REPORT+="❌ $LABEL : La copie a échoué.\n"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Suppression des fichiers source
|
||||||
|
rm -r "$SOURCE_DIR"/*
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
REPORT+="⚠️ $LABEL : Copie OK mais échec suppression source.\n"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Mise à jour des permissions et propriétaire
|
||||||
|
chmod -R 777 "$DEST_DIR" || { REPORT+="⚠️ $LABEL : Échec chmod.\n"; return; }
|
||||||
|
chown -R 911:911 "$DEST_DIR" || { REPORT+="⚠️ $LABEL : Échec chown.\n"; return; }
|
||||||
|
|
||||||
|
# Correction des erreurs résiduelles
|
||||||
|
find "$DEST_DIR" ! -perm 777 -exec chmod 777 {} \;
|
||||||
|
find "$DEST_DIR" ! -user 911 ! -group 911 -exec chown 911:911 {} \;
|
||||||
|
|
||||||
|
# Résumé du transfert
|
||||||
|
NB_FILES=$(find "$DEST_DIR" -type f | wc -l)
|
||||||
|
REPORT+="✅ $LABEL : Transfert terminé avec $NB_FILES fichiers.\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Vérifier verrou
|
||||||
|
if [ -e "$LOCK_FILE" ]; then
|
||||||
|
echo "❌ Le script est déjà en cours d'exécution. Fichier de verrouillage détecté."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
touch "$LOCK_FILE"
|
||||||
|
|
||||||
|
# Traitement des transferts
|
||||||
|
transfer_files "$SOURCE_DIR_AN" "$DEST_DIR_ANIME" "Anime"
|
||||||
|
transfer_files "$SOURCE_DIR_SE" "$DEST_DIR_SERIE" "Série"
|
||||||
|
transfer_files "$SOURCE_DIR_MU" "$DEST_DIR_MUSIC" "Musique"
|
||||||
|
|
||||||
|
# Nettoyage
|
||||||
|
rm -f "$LOCK_FILE"
|
||||||
|
|
||||||
|
# Afficher rapport
|
||||||
|
echo -e "$REPORT"
|
||||||
Reference in New Issue
Block a user