Aller au contenu

Script Pour Cr


Messages recommandés

Tu peux rebooter ton NAS ou ajouter des photos et surveiller avec top ou ps un programme qui s'appellerait convert.

C'est sûrement un script shell, tu n'as qu'a le récupérer sur ton PC et effectuer le même travail.

En théorie.

oui merci.

Il ne manque "que" les paramètres à passer à convert ...

le script en question est :

3380 root 9324 S N /usr/syno/bin/synomkthumbd

mais il n'est pas très lisible

Lien vers le commentaire
Partager sur d’autres sites

voilà je me suis fais un script qui marche pour la création des miniatures

après il ne me reste plus qu'à vérifier que c'est bien pris en compte lors de la réindexation par le syno

#####################################

# DISCLAMER

#####################################

la solution que je propose ici est en cours de validation chez moi,

si vous la tenter c'est à vos risque et péril !!!

elle ne fait aucune suppréssion de fichier mais créer des miniatures dans le dossier scanné

attention à toutes mauvaise manipulation

EDIT:

- modif de quelques fautes de typo dans les commentaires

- dans la cascade des résolutions de convert (pour améliorer encore la vitesse d'execution)

- "rev" enlever pour utiliser directement $NF dans awk (mieux et en plus rev n'existe pas sur syno meme dans ipkg)

######################################

# remarque, j'utilise "bash" mais normalement vous l'avez sur votre linux de base "si vous etes sous windows... dommage"

je l'ai décomposé en 3 fichiers:

le "master" qui scanne tous les *jpg et *JPG puis qui appelle la conversion en miniature

la conversion "unitaire" qui crée les 4 miniatures avec la bonne arborescence

le "check" de l'existence pour pas refaire les miniatures qui existent:

  • photo_thumbCreateAll.sh


#!/bin/bash


# ---------------------------------------------------------------------

# limitations: extensions supportés jpg JPG

#

# dépend des scripts suivant :

# - photo_thumbElem.sh

#	qui dépend de

#	- photo_thumbCheckExist.sh

# ---------------------------------------------------------------------


# interface utilisateur

echo " Ce script genere les miniatures pour photostation"

echo "---------------------------------------"


# inputs

# ------


# $1 = repertoire

export inputDir=$1


# display

# -------

echo "Début du traitement"


# récupère les jpg et JPG puis converti

find $inputDir \( -name "*.JPG" -o -name "*.jpg" \) -exec photo_thumbElem.sh {} \;


# fin

echo "--------------------------------------------"

echo "- il faut maintenant relancer l'indexation -"

echo "- pour que les miniatures soient prises en -"

echo "- compte dans photo-station            	-"

echo "-------------------- FIN -------------------"

  • photo_thumbElem.sh

#!/bin/bash


# ---------------------------------------------------------------------

# limitations: cf convert pour la conversion en .jpg

#

# dépend des scripts suivant :

# - photo_thumbCheckExist.sh

# ---------------------------------------------------------------------


# ---------------------------------------------------------------------

# init/config

# ---------------------------------------------------------------------


# thumnails names

export Lname="SYNOPHOTO:THUMB_L.jpg"

export Bname="SYNOPHOTO:THUMB_B.jpg"

export Mname="SYNOPHOTO:THUMB_M.jpg"

export Sname="SYNOPHOTO:THUMB_S.jpg"


# thumnails size

export Lsize="800x800"

export Bsize="640x640"

export Msize="320x320"

export Ssize="160x160"


# fichier temporaire créé par checkThumbExist (nom arbitraire, il faut juste la cohérence avec la fonction check)

fileTmpDiff="/tmp/thbExist918diff"


# ---------------------------------------------------------------------

# coeur du programme

#

# rem: a ameliorer pour tenir compte de tous les formats image supportés

# 

# limitations: extensions supportés jpg JPG

# ---------------------------------------------------------------------


# element a convertir

fullPathToPic=$@


# test @eaDir

isNot_eaDir=`echo $fullPathToPic | grep -v "@eaDir"`


if [[ -z $isNot_eaDir ]]

then


  # fichier image non traité car contient @eaDir dans le path

  echo $fullPathToPic non traitee car est dans @eaDir


else


  # Recupere le noms et le dossier de l'element

  picName=`echo $fullPathToPic | awk -F\/ '{print $NF}' `

  picDir=`echo $fullPathToPic | sed s/$picName//g | sed s/.$//` 


  # vérification que les miniatures n'existe pas déjà

  photo_thumbCheckExist.sh $picDir $picName


  # si diff vide alors les miniatures existent deja

  isNot_thumb=`cat $fileTmpDiff`


  if [[ -z $isNot_thumb ]]

  then


	# fichier image non traité car les miniatures existent déjà

	echo $fullPathToPic non traitee car les miniatures existent deja


  else


	echo " "

	echo "traitement du fichier :" $fullPathToPic


	# conversion

	# ----------

	mkdir -p "$picDir/@eaDir/$picName"

	chmod 775 "$picDir/@eaDir/$picName"

	convert -size $Lsize "$picDir/$picName" -resize $Lsize "$picDir/@eaDir/$picName/$Lname"

	convert -size $Lsize "$picDir/@eaDir/$picName/$Lname" -resize $Bsize "$picDir/@eaDir/$picName/$Bname"

	convert -size $Bsize "$picDir/@eaDir/$picName/$Bname" -resize $Msize "$picDir/@eaDir/$picName/$Mname"

	convert -size $Msize "$picDir/@eaDir/$picName/$Mname" -resize $Ssize "$picDir/@eaDir/$picName/$Sname"


  fi


fi

  • photo_thumbCheckExist.sh

#!/bin/bash


# ce script verifie si l'image cible a deja des miniatures respectant les noms donnés par photostation


# input

picDir=$1

picName=$2


# fichiers temporaires

fileTmpLs="/tmp/thbExist918ls"

fileTmpRef="/tmp/thbExist918ref"

fileTmpDiff="/tmp/thbExist918diff"



# reference "ls" 

echo "SYNOPHOTO:THUMB_B.jpg" > $fileTmpRef

echo "SYNOPHOTO:THUMB_L.jpg" >> $fileTmpRef

echo "SYNOPHOTO:THUMB_M.jpg" >> $fileTmpRef

echo "SYNOPHOTO:THUMB_S.jpg" >> $fileTmpRef


# "ls" cible

if [[ -d "$picDir/@eaDir/$picName" ]]

then

  # echo "existe!"


  # verifie si les fichiers thumb existe bien tous

  ls "$picDir/@eaDir/$picName" > $fileTmpLs

  diff $fileTmpLs $fileTmpRef > $fileTmpDiff


  # else

  # echo "n'existe pas"


else


  # met n'importe quoi pour dans le diff pour dire que ça differe

  echo "n'existe pas donc a creer" > $fileTmpDiff

fi

- il suffit de créer ces trois fichiers, de avec ces noms là !

(en supposant que vous etes dans le répertoire ou les fichiers se trouvent la suite est ci dessous)

- de les rendre exécutables :

chmod 775 photo_thumb*

- de rajouter dans son path le répertoire ou vous avez sauvez ces fichiers :

PATH=$PATH:$PWD

-puis d'appeler le script avec le dossier photo...

>> en ssh sur le NAS ça donne qqch comme ça

. photo_thumbCreateAll.sh /volume1/photo

>> dans un terminal sur son linux ça donne un truc comme

. photo_thumbCreateAll.sh /media/ds211photo

# si /media/ds21photo pointe (en nfs) vers le /volume1/photo dans le syno

POUR INFO:

il affiche dans le terminal quel fichier il a ignoré et pour quelle raison

et affiche le fichier qui est en cours de traitement.

Meme avec le syno ça va plus vite car j'ai repris l'image basse résolution pour créer les miniatures secondaires (nécéssite d'installer bash via ipkg sur le syno)

REMARQUE:

je suis preneur de toute amélioration, tout commentaire...

Bonne nuit !

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

Bonjour

expliquez moi pourquoi vous essayez de reinventer quelque chose qui fait partie de Synology Assistant

chargement des photos, avec création des miniatures sur votre pc

page 140 de la notice http://download.syno...AServer_fra.pdf

en utilisation Synology Assistant tout simplement la création des miniatures est faite avant le transfere sur le nas

Patrick

Parce que lui il traite les photos directement sur le Syno avec son script. Pas obligé de les enlever pour les remettre par l'assistant.A moins que l'assistant permette de faire ça (la notice veut pas se charger, 1 ko/s...)

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
  • 2 semaines après...
  • 3 semaines après...

Salut,

J'ai mon NAS depuis une semaine, la première chose que j'ai faite c'est de balancer toute ma banque de photographies jusqu'à m'apercevoir que les thumbnails n'étaient pas créés, et le processeur tournait à 100%.

J'ai fait une recherche et j'ai trouvé le script bash que tu as réalisé. J'ai dans un premier temps essayé de le faire tourner sous mac osx, pour information ça ne fonctionne pas, car le système mac osx n'autorise pas les : (deux points) dans les noms des fichiers. (mais le script fonctionne) zut.

J'ai fait des premiers tests, et bien que je pense que les images sont aux bonnes dimensions, photo station affiche les thumbnails tout étirés pour les photos verticales ? Est-ce normal ? Est-ce que le script du NAS ou l'Assistant Synology n'effectue pas un autre traitement (infos dans la base), ou est-ce qu'il utilise seulement les images contenu dans ces dossiers (@eaDir).

J'ai une autre question, j'ai regardé un dossier sur le nas ~300ko, un dossier compressé avec le script 1.2 Mo. Est-ce que les images traitées avec le script Bash sont compressées ? Avec une banque d'image assez importante, ça risque de prendre pas mal de place.

C'est dommage quand même qu'ils ne pensent pas à une solution plus efficace… quand je compresse des photos sous Photoshop (dimensions, filtres, copyright), on les voit à peine s'afficher.

En tout cas merci pour ce travail ! ;)

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...
  • 2 semaines après...
  • 2 semaines après...
  • 1 mois après...

Salut et Merci pour ces formidables scripts qui viennent bien à point

puisque je ne suis jamais parvenu à faire fonctionner le SynologyAssistant correctement pour transférer les photos sur le NAS

depuis mon Kubuntu 11.04 64 bits.

A chaque fois, erreur de "convert" pour la création de la miniature (vignette) ; juste le transfert des images sans miniature ... pas cool.

Donc, encore merci pour les scripts qui eux fonctionnent super bien et bien plus vites :-)

Hier, j'ai fait l'upgrade vers la version de DSM 3.2.

L'upgrade s'est bien déroulé mais ... depuis le NAS n'arrête pas de recréer (apparemment) toutes les vignettes.

A raison de +/- 24.000 fichiers à faire sur mon DS211j ... j'en ai pour des semaines pour que cela soit fini !

Et pas moyen d'empêcher le NAS de le faire (alors que toutes mes miniatures étaient très bien ainsi précédemment)

J'ai mis dans la config "haute qualité" à la place de "normale". Puis J'ai remis "normale". En espérant qu'il allait arrêter.

Mais rien n'y fait ... : il continue à refaire toutes les vignettes : aaaarghhhhh. :-(

Questions :

1. les scripts sont-ils déjà prévu pour cette version 3.2 ? (quelque chose à modifier pour faire la différence entre "haute/normale qualité" ?)

2. si je lance (à nouveau) les scripts sur mes photos sur le NAS, pensez-vous que cela va arrêter le processus de recréation ? (et surtout cela ira-t-il + vite ?)

Le pire c'est que je ne sais même pas voir quelles photos il traite (pour m'assurer qu'il fait quelque chose), voir le nombre diminuer (si lentement) ne m'aide pas beaucoup dans ce cas...

D'avance merci pour vos réponses.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Pour répondre en vrac aux questions que j'ai vu :

1. ce sont des scripts, donc rien est installé sur l'ordi ou le nas.

ce script se lance quand vous l'appelez...

2. je le redis, je ne suis pas sur que ça marche aussi bien que quand je les ai créé (sur la DSM3.0)

à l'époque, j'en étais content, mnt sur le DSM3.1 j'ai l'impression qu'il recrée les miniatures meme si le script les a déjà créées... dommage

3. pour répondre à castordan

Questions :

1. les scripts sont-ils déjà prévu pour cette version 3.2 ? (quelque chose à modifier pour faire la différence entre "haute/normale qualité" ?)

2. si je lance (à nouveau) les scripts sur mes photos sur le NAS, pensez-vous que cela va arrêter le processus de recréation ? (et surtout cela ira-t-il + vite ?)

- je suis tjs sur DSM3.1 donc j'ai pas testé pour 3.2. a priori ça devrait pas avoir bcp changer. il faudrait regarder dans les scripts du syno (ils définissent les tailles et noms des miniatures)

pour voir les scripts il faut regarder dans le syno ici : "/usr/syno/synoman/phpsrc/photo/"

il y a le script convert.php (fichier "maitre" on dirait)

et les scripts qui définissent les résolution sont :

./include/synophoto_conf.php (fichiers standards)

./mApp/include/synophoto_mobile_conf.php (fichiers mobiles)

- j'ai pas bien compris ta 2eme question. mais si tu veux arreter un processus tu peux essayer de le "tuer" en te connectant en telnet ou ssh à ton syno,

puis en tapant "top" tu vois les processus qui tournent".

tu tappes "q" pour sortir après avoir ragarder dans la première colonne le numero "PID" correspondant au processus que tu veux tuer (synoindexd typiquement ici)

après etre sorti de top, tu tappes la commande suivante :

kill -15 Numero_PID (avec Numero_PID le numéro relevé). Par exemple "kill -15 6109" si 6109 correspond au PID de synoindexd.

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.