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