Aller au contenu

Script De D


Messages recommandés

Bonjour à tous,

je suis newbie dans le monde linux, j'essaie de faire un script pour déplacer mes fichiers de séries. J'ai un ds213 avec DSM 5 derniere version.

J'ai les erreurs suivantes lorsque je l'execute :

DiskStation> sh MoveSeries.sh
: not foundsh: line 2:
Arrow
find: -exec CMD must end by ';'
find: -exec CMD must end by ';'
find: -exec CMD must end by ';'
: not foundsh: line 7:
Simpsons
find: -exec CMD must end by ';'
find: -exec CMD must end by ';'
find: -exec CMD must end by ';'
: not foundsh: line 12:
Mentalist
find: -exec CMD must end by ';'
find: -exec CMD must end by ';'
find: -exec CMD must end by ';'
: not foundsh: line 17:
MoveTemp

Voici mon script :

#!/bin/sh

echo "Arrow"
find . -type f -iname "*arrow*.mkv" -exec cp '{}' /volume1/Videos/Series/Arrow/Saison 2/ ;
find . -type f -iname "*arrow*.mp4" -exec cp '{}' /volume1/Videos/Series/Arrow/Saison 2/ ;
find . -type f -iname "*arrow*.avi" -exec cp '{}' /volume1/Videos/Series/Arrow/Saison 2/ ;

echo "Simpsons"
find . -type f -iname "*simpsons*.mkv" -exec cp '{}' /volume1/Videos/Series/Simpsons/Season 25/ ;
find . -type f -iname "*simpsons*.mp4" -exec cp '{}' /volume1/Videos/Series/Simpsons/Season 25/ ;
find . -type f -iname "*simpsons*.avi" -exec cp '{}' /volume1/Videos/Series/Simpsons/Season 25/ ;

echo "Mentalist"
find . -type f -iname "*mentalist*.mkv" -exec cp '{}' /volume1/Videos/Series/The Mentalist/Saison 6/ ;
find . -type f -iname "*mentalist*.mp4" -exec cp '{}' /volume1/Videos/Series/The Mentalist/Saison 6/ ;
find . -type f -iname "*mentalist*.avi" -exec cp '{}' /volume1/Videos/Series/The Mentalist/Saison 6/ ;

echo "MoveTemp"
mv /volume1/Download/_FeedFiles/* /volume1/Download/_Temp/

Pouvez-vous m'aider et également m'aider à l'optimiser ?

Merci

Lien vers le commentaire
Partager sur d’autres sites

Vu les erreurs je ne serai pas étonné, comme le suggère Bud, que tu ai édité ton script avec un editeur windows qui ne gère pas les fin de lines unix.

Et pour l'optimisation du code, je ferai un truc dans ce genre (gaffe, non testé; commencer en remplacant le "-x" du 2eme "tar" par "-t" pour valider)

#!/bin/sh
PATH=/bin:/usr/bin

copyfiles () {
    pattern="$1"
    target="$2"
    find  . -name '@eaDir' -prune -o -type f -print |
    grep -i -E "$pattern" |
    tar -c --files-from=- --transform="s@.*/@@" |
    tar -x -C "$target" -vf -

}

SERIES="/volume1/Videos/Series"
copyfiles "arrow.*.(mkv|avi|mp4)" "$SERIES/Arrow/Saison 2/"
copyfiles "simpson.*.(mkv|avi|mp4)" "$SERIES/Simpsons/Season 25/"
copyfiles "mentalist.*.(mkv|avi|mp4)" "$SERIES/Arrow/Saison 2/"

 

Le "transform" du premier tar sert à mettre les chemins de fichiers "a plat" (pas de sous-dossiers à l'arrivée)

On doit pouvoir faire plus compact a coup de rsync (/usr/syno/bin/rsync) avec les options "--include" et "--exclude" mais j'ai pas le temps de maquetter ça là.

Si tu as le temps ça peut faire un bon exercice.

**edit**

remplacé le second "-prune" du "find" par un "-print", voila ce qui ce passe avec les scripts à l'arrache pas testés. Et c'est probablement pas le dernier bug.

Désolé

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Merci Bud, merci CoolRaoul effectivement j'ai fait le script avec notepad++ ... c'est bête, mais sans votre aide j'aurais pu chercher longtemps !
Alors pour info, il est possible de continuer à utiliser notepad++ il suffit de :

faire affichage > afficher Symboles spéciaux> afficher tout

puis Edition > convertir saut de ligne > unix

Pour l'optimisation je vais tester tout ca, j'avais aussi pensé au rsync, mais je débute alors j'ai fait au plus simple.

Et je vais esssayer de mettre un peu de logs dans tout ca.

Merci beaucoup :D

Lien vers le commentaire
Partager sur d’autres sites

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.