Aller au contenu

Messages recommandés

Posté(e) (modifié)

Bonjour,

j'aime beaucoup DS, mais le problème, avec le téléchargement via les newsgroups, c'est l'absence de prise en compte des fichiers .par2. En effet, si une extraction des fichiers .rar échoue ... il n'y a rien à faire.

A part utiliser Sabnzbd, mais même s'il est doté de réelles qualités, il n'est pas multi-utilisateurs et ne permet pas de gérer les quotas. Et j'ai besoin de tout ça.

Donc je me suis inspiré de ce qui existait déjà (http://kvz.io/blog/2011/02/28/optimize-your-synology-for-downloading/) pour en faire un qui réponde à mes besoins, sans avoir à bootstrapper mon Syno et donc en utilisant le shell ash.

Les prérequis :

  • sabnzbd, malgré tout ! Mais le paquet peut-être arrêté. On a juste besoin d'un exécutable, par2. Je le poste, ça vous évitera d'installer le paquet.
  • un accès ssh à votre Syno
  • un répertoire partagé sur /volume1 (par ex. 'scripts') où stocker le script, et éventuellement, l'exécutable par2.

Ce que ça fait, en gros (et c'est perfectible : je suis pas allé très loin dans le raffinement) :

  • ça vérifie qu'il existe des fichiers par2 ou rar dans le répertoire de votre choix, celui où arrive les downloads. Sinon, pas la peine de le lancer. Et ça exclue un dossier de façon récursive du traitement.
  • Là se trouve le point faible du script, à adapter et à améliorer : le script ne traite que les fichiers qui existent depuis plus de 65 minutes pour laisser le temps au téléchargement de se finir. Mais certainement pas avec un bluray complet de 50 Go (j'en ai pas). C'est une valeur moyenne qui fonctionne chez moi. Bref, je suis preneur de toute autre solution plus fiable !
  • ça traite chaque répertoire récursivement et conserve les bonnes permissions à la création des .rar manquants ou défectueux ; ainsi qu'à la décompression.

Je suis tout ouïe si vous voulez des précisions :)

Le voici ce script :

#### Recherche de fichiers par2 et rar pour réparation et extraction.####
Root="/volume1/public/inbox"
Home="$(pwd)"
existpar2="$(find /volume1/public/inbox/ -iname '*.par2')"
existrar="$(find /volume1/public/inbox/ -type d -name nothere -prune -o -iname '*.rar' -print)"
# PAR
echo "Looking for files to repair..."
if [ -z "$existpar2" ]; then
echo "Pas de fichier(s) .par2"
exit
else
Prevdir=""
find ${Root} -type d -name nothere -prune -o -iname "*.par2" -mmin +65 -print |sort | while read File; do
Dir="$(dirname "$File")"
owner="$(ls -l "$File" | awk '{print $3}')"
if [ "${Prevdir}" != "${Dir}" ]; then
cd "${Dir}"
echo ""
echo "= $(pwd)"
echo "================================================================================================"
# Process the first par file in this directory thanks to |sort
/usr/local/sabnzbd/bin/par2 r "${File}"
find . -user root -iname '*.rar' -print -exec chown $owner '{}' ;
if [ $? -eq 0 ]; then
echo "Successfully repaired; purging par files"
rm -f *.par2
rm -f *.PAR2
fi
fi
Prevdir=$Dir
done
fi
cd "${Home}"
# RAR
echo "Looking for rar files to unpack..."
if [ -z "$existrar" ]; then
echo "pas de fichier rar"
exit
else
Prevdir=""
find ${Root} -type d -name nothere -prune -o -iname "*.rar" -mmin +65 -print |sort | while read File; do
Dir="$(dirname "$File")"
owner="$(ls -l "$File" | awk '{print $3}')"
if [ "${Prevdir}" != "${Dir}" ]; then
cd "${Dir}"
echo ""
echo "= $(pwd)"
echo "================================================================================================"
# Process the first rar file in this directory thanks to |sort
/usr/syno/bin/unrar e -y -o+ -p- -ow "${File}"
if [ $? -eq 0 ]; then
echo "Successfully unpacked; purging rar files"
rm -f *.rar
rm -f *.nfo
rm -f *.rar.[0-9]
rm -f *.r[0-9][0-9]
rm -f *.s[0-9][0-9]
rm -f *.t[0-9][0-9]
chown $owner *.*
fi
fi
Prevdir=$Dir
done
fi
cd "${Home}"

Merci à celui qui a posté le script original d'ailleurs !

Ps : J'arrive pas à uploader le fichier.

Modifié par bigorno

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.