crakotte Posté(e) le 11 septembre 2012 Posté(e) le 11 septembre 2012 (modifié) 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é le 28 septembre 2012 par crakotte 0 Citer
MrWaloo Posté(e) le 11 septembre 2012 Posté(e) le 11 septembre 2012 (modifié) Salut, Merci de partager... Tu pourrais mettre le script dans des balises CODE pour la lisibilité et préciser qu'il faut le rendre exécutable. A+ Michel Modifié le 27 septembre 2012 par MrWaloo 0 Citer
crakotte Posté(e) le 11 septembre 2012 Auteur Posté(e) le 11 septembre 2012 voila, c'est un peu plus lisible maintenant. merci pour ces remarques judicieuses ;-) Salut, Merci de partager... Tu pourrais mettre le script dans des balises CODE pour le lisibilité et préciser qu'il faut le rendre exécutable. A+ Michel 0 Citer
jedifab Posté(e) le 15 septembre 2012 Posté(e) le 15 septembre 2012 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 0 Citer
jedifab Posté(e) le 15 septembre 2012 Posté(e) le 15 septembre 2012 (modifié) 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é le 15 septembre 2012 par jedifab 0 Citer
crakotte Posté(e) le 17 septembre 2012 Auteur Posté(e) le 17 septembre 2012 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. @+ 0 Citer
Wawa17 Posté(e) le 26 septembre 2012 Posté(e) le 26 septembre 2012 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 0 Citer
crakotte Posté(e) le 27 septembre 2012 Auteur Posté(e) le 27 septembre 2012 (modifié) 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. 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 Modifié le 27 septembre 2012 par crakotte 0 Citer
MrWaloo Posté(e) le 27 septembre 2012 Posté(e) le 27 septembre 2012 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 0 Citer
crakotte Posté(e) le 28 septembre 2012 Auteur Posté(e) le 28 septembre 2012 (modifié) Salut, Merci Michel. Je débute, donc je suis très à l'écoute de ce type de conseil. C'est donc pris en compte avec grand plaisir. merci encore. Modifié le 28 septembre 2012 par crakotte 0 Citer
standup13 Posté(e) le 10 août 2013 Posté(e) le 10 août 2013 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. 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.