Aller au contenu

Compl


crakotte

Messages recommandés

But du projet :

Faire un script qui passe quotidiennement (crontab) et envoie par mail à une, ou plusieurs adresse(s) de votre choix (nail), les miniatures (imagemagick) des images déposées dans les dernières 24h dans un album photostation (find - itime).

Ce tuto s'adresse plutôt aux utilisateurs qui ont déjà bricolé un peu en ligne de commande sur leur Syno, mais je peux détailler certaines étapes si besoin. Pour les habitués, certaines étapes pourront être sautées si vous les avez déjà effectuées auparavant :

1- installer ipkg (cf wiki ipkg)

2- installer nail et le paramétrer

ipgk install nail

éditer
/opt/etc/nail.rc pour y ajouter par exemple la conf d'un compte gmail :


set smtp-use-starttls

set ssl-verify=ignore

set smtp=smtp://smtp.gmail.com:587

set from= »Prénom Nom »

set smtp-auth=login

set smtp-auth-user=monsyno@gmail.com

set smtp-auth-password=***PASSWORD***

3- installer imagemagick et findutils :
ipkg install imagemagick ipkg install
findutils
4- écrire le shell ( vi /volume1/script/magick.sh ou via notpad++) et le rendre executable ( chmod a+x /volume1/script/magick.sh) :
#!/bin/sh

############## script d'envoi de miniatures par mail #################


log="/volume1/scripts/magick.log"

dest="/volume1/scripts/magick_tmp"

source="/volume1/photo/monalbum"

mail="mail1@domaine1.com,mail2@domaine2.com"

message="Photos du jour"


echo "Debut du script le "$(date "+%d %m (%T)") > $log


echo "Copie des fichiers du jour dans le repertoire de travail" >> $log

find "$source" -iname "*.jpg" -mtime -1 -type f -printf %f -exec cp "{}" "$dest" \;

# suppression des thumb

rm $dest/SYNOPHOTO:THUMB*.jpg


# verifie si des fichiers sont a convertir

if [ "$(ls $dest/*.jpg)" ]; then


######################################## 1024 ####################################

	 echo "Conversion des fichiers en 1024" >> $log


	 # modification du lot d'images

	 mogrify -resize 1024x "$dest/*.jpg"


	 ficlist=`find $dest -iname "*.jpg" -mtime -1 -type f -printf "-a %p "`


	 # Generation de la commande d'envoie de mail

	 #=================================================

	 echo "Photos redimensionnees en 1024" | nail -s "Photos du jour (1024)" $ficlist $mail

	 # suppression des fichiers de travail

	 rm $dest/*.jpg

synodsmnotify mon_user "Notification PhotoStation" "News photo envoyées"

else

	 echo "Pas de fichier a convertir." >> $log

fi


echo "Fin du script le "$(date "+%d %m (%T)") >> $log

5- planifier le shell dans la crontab et redemarrer crontab

vi /etc/crontab et ajouter une ligne pour votre script (voir
si vous rencontrez un pb)

/usr/syno/etc.defaults/rc.d/S04crond.sh stop

/usr/syno/etc.defaults/rc.d/S04crond.sh start
Modifié par crakotte
Lien vers le commentaire
Partager sur d’autres sites

Bonjour et merci pour ton post,

Je suis tombé dessus car je cherche à installer sur mon syno imagemagick et mes recherches ne donnent rien.

J'ai essayé du côté "ipkg install imagemagick" comme indiqué dans ton tuto mais rien...

Est ce que tu penses qu'avec ton aide et mes connaissances limités en lignes de commandes et telnet on pourrais y arriver ?

D'avance merci pour ta réponse,

Fabien

Lien vers le commentaire
Partager sur d’autres sites

j'ai pu installer le paquet,

mais à présent il me semble qu'il faut configurer le php.ini ?

J'ai lu qu'il fallait inserer la ligne :

extension=imagick.so

ce que j'ai fait en fin de fichier php.ini dans "/usr/syno/etc.defaults" puis relancé apache, mais ça ne semble pas fonctionner...

à l'appel d'une fonction imagemagick en php j'ai toujours :

Fatal error: Class 'Imagick' not found in...

Merci pour ta réponse.

Fabien

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

bonjour,

je ne me sert pas de imagemagick via php, mais directement dans un shell ( commande convert et mogrify ). Une fois le package installé, on peut s'en servir directement sans avoir à paramétrer de conf. Je ne sais donc pas comment on s'en sert via php.

les sites dont je me suis servi pour ecrire le shell sont les suivants :

un petit exemple de script : redimensionner les images contenues dans un répertoire

page officielle des (nombreuses) possibilités imagemagik :

http://www.imagemagick.org/script/convert.php

exemples des possibilités (modifications géométrie)

autres exemples

en espérant que ça t'aidera à avancer.

@+

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Salut crakotte !

Merci pour ce petit script. Je l'ai mis en place sur mon Syno. Cela fonctionne parfaitement.

J'ai juste rajouté l'utilisation de synodsmnotify pour avoir un compte-rendu dans l'interface DiskStation.


synodsmnotify mon_user "Notification PhotoStation" "Mail envoyé"

Du coup, je peux voir quand (et si !) un mail a été envoyé :)

Encore merci :D

Lien vers le commentaire
Partager sur d’autres sites

Salut Wawa ! A mon tour de te remercier, je ne connaissais pas cette commande. Je vais expérimenter ça ce soir. Ya de quoi s'amuser ;-)

En ce moment, je cherche à mettre en place une petite routine qui vérifie la cohérence des tag GPS par rapport aux dates de prise de vue. Mon appareil photo n'a pas toujours le temps de recaler la position GPS avant que je prenne les premières photos, du coup, c'est complètement faussé dans le timeline de photostation. :wacko:

les commandes d'extraction exif viennent également de imagemagick :


identify -format "%[EXIF:GPSLongitude]" ./*.jpg >> longitude.txt

identify -format "%[EXIF:GPSLatitude]" ./*.jpg >> latitude.txt

identify -format "%[EXIF:GPSDateStamp]" ./*.jpg >> datestamp.txt

C'est beau le partage de connaissance :D

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

Hello,

Petite remarque, toute petite...

Tu pourrais alléger et optimiser la génération et le formatage de la date pour les log.

A la place de :


mois=`date +%m`

jour=`date +%d`

heure=`date +%T`

echo "Debut du script le $jour $mois ($heure)" > $log

Tu peux mettre .

echo "Debut du script le "$(date "+%d %m (%T)") > $log

Une seule ligne au lieu de 4, un seul appel de l'exécutable "date" au lieu de 3.

C'est peu de chose, mais ...

A+

Michel

Lien vers le commentaire
Partager sur d’autres sites

  • 10 mois après...

Salut, je viens de suivre le tuto qui marche bien. Mais je me rend compte que le temps de conversion des photos est assez long, dans le cas ou notre bon syno fait déjà des miniatures pourquoi ne pas les exploiter?

j'ai donc modifier le code pour ceux que ça interesse:

#!/bin/sh
############## script d'envoi de miniatures par mail #################

log="/volume1/scripts/magick.log"
dest="/volume1/scripts/magick_tmp"
source="/volume1/photo/"
tmp="/volume1/scripts/liste"
number=0
mail="monmail@mail.fr"

message="Photos du jour"


find "$source" -iname "SYNOPHOTO:THUMB_L.jpg" -mtime -1 -type f > $tmp

for i in $(cat $tmp);
do
number=`expr $number + 1`
cp $i $dest/$number.jpg
done
# verifie si des fichiers sont a convertir
if [ "$(ls $dest/)" ]; then



         ficlist=`find $dest -iname "*.jpg" -mtime -1 -type f -printf "-a %p "`
         nbphotos=`find $dest -iname "*.jpg" -mtime -1 -type f|wc -l `
 # Generation de la commande d'envoie de mail
 #=================================================
         echo "$nbphotos photos du jour!" | nail -s "Photos du jour " $ficlist $mail
         # suppression des fichiers de travail
         rm $dest/*
         synodsmnotify user_du_syno "Notification PhotoStation" "$nbphotos photos envoyées"
fi
rm $tmp

il reste pas mal de choses à améliorer (vérification du poid du mail, pas de gestion des chemins contenant des espaces, amélioration du log que j'ai supprimé dans mon code) mais je suis une grosse feignasse.

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.