Gnol86 Posté(e) le 10 mai 2015 Posté(e) le 10 mai 2015 (modifié) Bonjour à tous, Je ne suis pas certain d'être dans la bonne section. J'aimerais pouvoir renommer mes films lors de leurs téléchargent et ceci en temps réel. Pour le "renommage" j'ai trouvé mon bonheur (filebot) qui fonctionne en ligne de commande sur Synology. J'aimerais maintenant lancer mon script au moment où le fichier est fini dans un dossier spécial pour l'arrivé des téléchargents. Le script de Filebot fera le boulot pour le renommage et le déplacement du film. J'ai pensé a incron. Mais je ne trouve pas comment l'installer sur Synology. Connaissez-vous vous une méthode ou une autre solution ? Merci d'avance. Modifié le 10 mai 2015 par Gnol86 0 Citer
Fenrir Posté(e) le 10 mai 2015 Posté(e) le 10 mai 2015 je ne pense pas que le "temps réel" soit vraiment nécessaire pour ce type d'usage surtout que dans ce cas tu fais un confiance aveugle à filebot Pour incron, il est possible de le compiler, mais son intégration avec le système risque d'être assez complexe Je pense qu'il est plus simple de faire une petite tache planifiée qui tourne de temps en temps 0 Citer
Gnol86 Posté(e) le 10 mai 2015 Auteur Posté(e) le 10 mai 2015 Mon problème avec les taches qui tourne de temps en temps est que je ne veux pas que mon film soit visible dans ma bibliothèque DLNA avant qu'il ne soit renommé (souci de visibilité). Ce qui veut dire que quand je veux voir un film et que je viens déjà d'attendre 1h pour le téléchargents, je n'ai pas envie d'attendre encore 10-15 min le temps que je script se lance. 0 Citer
Fenrir Posté(e) le 10 mai 2015 Posté(e) le 10 mai 2015 Mon problème avec les taches qui tourne de temps en temps est que je ne veux pas que mon film soit visible dans ma bibliothèque DLNA avant qu'il ne soit renommé (souci de visibilité). Ce qui veut dire que quand je veux voir un film et que je viens déjà d'attendre 1h pour le téléchargents, je n'ai pas envie d'attendre encore 10-15 min le temps que je script se lance. ne stock pas les téléchargement dans un dossier pris en compte par l'indexation dans ton script, fais 2 opérations : renommage déplacement dans un dossier indexé planifie le tout toutes les 1 minutes 0 Citer
Gnol86 Posté(e) le 10 mai 2015 Auteur Posté(e) le 10 mai 2015 Merci, je vais tester cela. Je vais également mettre une vérification du contenu du dossier téléchargents pour ne lancer Filebot que si des films sont présents. Si cela intéresse quelqu'un, je posterais mon script. 0 Citer
EricMotordu Posté(e) le 11 mai 2015 Posté(e) le 11 mai 2015 Bonjour, par curiosité (je ne connaissais pas inotify, c'est super chouette, merci pour le vint), j'ai regardé un peu et c'est bien documenté pour Synology sur http://forum.synology.com/enu/viewtopic.php?f=37&t=56439, cela demande d'installer ipkg et de faire des modifications qui touchent au système, comme dit @Fenrir, s'il y a une solution plus simple, à préférer. (le kernel du DSM 5.0 est compilé avec inotify, je l'ai testé avec inotail qui est installable avec ipkg) bonne journée, Eric 0 Citer
Gnol86 Posté(e) le 11 mai 2015 Auteur Posté(e) le 11 mai 2015 Voici la première version de mon script qui se lance toute les minutes. Qu'en pensez-vous ? #!/bin/sh clear #Définition des variables dirSource="/volume1/video/Download" dirDestMovie="/volume1/video/movie" #/{n.replaceAll(' :', replacement = ',').replaceAll(':', replacement = ',').replaceAll('?', replacement = '')} ({y}, {director}){' CD'+pi} formatMovie=$dirDestMovie"/{n} ({y}, {director}){' CD'+pi}" echo "Analyse du dossier 'Téléchargement'..." if [ "$(ls "$dirSource")" != "" ]; then ls $dirSource echo "Lancement de FileBot.." echo $formatMovie filebot -rename $dirSource -r --db TheMovieDB --lang fr --format $formatMovie --conflict skip else echo "Dossier vide" fi 0 Citer
EricMotordu Posté(e) le 11 mai 2015 Posté(e) le 11 mai 2015 Bonsoir, je ne connais pas filebot assez pour savoir ce qui se passe dans ce cas là mais avec cron il faut gérer : 1. que se passe t'il s'il y a deux instances du programme qui tournent en même temps (par exemple, une exécution qui dure longtemps), vont'ils travailler sur le même fichier? 2. comment vas-tu savoir si le programme ne fonctionne plus (email, SMS, stats…) 3. les fichiers de logs, le plus simple ce peut être de rediriger la sortie vers un fichier pour chaque exécution (sinon tu peux le faire vers un fichier central mais le point 1. peut compliquer les choses et il faut sans doute lui faire subir une rotation, logrotate peut faire cela mais tu ajoutes des choses à faire), exemple d'un cron chez moi: 35 5-23/4 * * 0-1 /volume1/maintenancelocale/scripts/rsync.braise2tarte.sh 20h 1000 > /volume1/maintenancelocale/log/rsync.braise2tarte.`/opt/bin/date --iso-8601=seconds` 2>&1 (la version de date est celle de ipkg car la version standard de DSM n'a pas le iso-8601) bonne journée, Eric 0 Citer
Fenrir Posté(e) le 11 mai 2015 Posté(e) le 11 mai 2015 En plus de ce qui est indiqué dans post précédent : ton script ne travail pas dans les sous dossiers (mais peut être que filebot le fait tout seul) tu considère que tous les fichiers sont à traiter si le nom de fichier contient de espaces (ou autre caractère spécial), tu risque d'avoir des surprises (sauf si filebot le gère correctement) tu peux aussi le faire avec find -exec : find /volume1/video/Download/ ( -name @eaDir -prune ) -o -type f ( -name '*.avi' -o -name "*.mkv" ) -exec ls -l {} ; ou avec find + xargs find /volume1/video/Download/ ( -name @eaDir -prune ) -o -type f ( -name '*.avi' -o -name "*.mkv" ) -print0 | xargs -0 ls -l la syntaxe peut paraitre compliquée, mais elle est plus fiable (normalement...) Dans un script ça donnerait un truc du genre : #!/bin/sh #on change le séparateur par défaut (pour traiter les caractères spéciaux) IFS_backup=$IFS IFS=$(echo -en "nb") #boucle pour traiter les fichiers 1 par 1 (en évitant cette #@!!%$ de dossier @eaDir) for FILE in `find /dossier -type f ( -name @eaDir -prune ) -o ( -name '*.avi' -o -name "*.mkv" )` do echo "Lancement d'une commande sur le fichier [$FILE]" echo "Lancement d'une commande sur le fichier [$FILE]" >> tonfichier.log done IFS=$IFS_backup exit 0 mais encore une fois, ça dépend de filebot, s'il travail correctement (gestion des files d'attente, des caractères spéciaux, des sous dossiers, ...), ton script devrait faire le job 0 Citer
Messages recommandés
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.