Aller au contenu

Featured Replies

Posté(e)

Bonjour à vous.

J'ai découvert Synology depuis environ un an, et je suis un grand fan (je ne peux plus imaginer ma vie sans)...

Je m'en sert de plus en plus et ai dernierement décidé d'automatiser un maximum mes téléchargements/copies de fichiers.

Donc, je télécharge mes fichiers dans un dossier, et j'ai un script shell qui va fouiller ce dossier pour récupérer les nouveaux fichiers et les copier et les rennomer dans un dossier partagés et utilisé par mon serveur multimédia (pour qu'ils soient visibles via l'UPNP)

Mon script fonctionne bien, les fichiers sont copiés, je les vois dans l'explorateur, cependant... Impossible de les voir depuis le navigateur UPNP (Freebox, ou autre).

Ma question est donc... Est-ce qu'il y à une commande spéciale à faire (ou un argument lors de la copie/rennomage) pour que ma liste des fichiers UPNP soit mise à jour?

Sinon, comment forcer le serveur UPNP à reconnaitre qu'un nouveau fichier est là?

(Pour info: Si je copie le même fichier manuellement, il est visible dans le navigateur UPNP. Le problème semble bien venir de la copie via le script)

Merci d'avance.

Modifié par Dranaa

Posté(e)

Regarder du coté de synoindex (/usr/syno/bin/synoindex)

Copyright (c) 2003-2012 Synology Inc. All rights reserved.

usage: 
Path must be shared folder path.

    Add:                synoindex -a filename
    Delete:             synoindex -d filename
    Add folder:         synoindex -A folder
    Delete folder:      synoindex -D folder
    Rename/move file/folder:    synoindex -N newfullpath oldfullpath
    Update Photo Images:        synoindex -U photo
    Execute file index:         synoindex -f {index option}
    Get from DB:                synoindex -g filename -t [video|music|photo|playlist]
    Reindex:                    synoindex -R [all|media|photo|music|video|thumb|{reindex_path}]
    Personal photo reindex:     synoindex -R user:{user name}
    Skip package index:         synoindex -p [media|{package_name}] {index option}
    Only package index:         synoindex -P [media|{package_name}] {index option}

Explication: les fichiers créés par des commandes ou des scripts ne sont pas automatiquement ajoutés à l'index, faut le faire manuellement.

Posté(e)
  • Auteur

Parfait, c'est exactement ce que je cherchais !

Je ferais un test ce soir (probablement) !

Merci à vous.

Posté(e)
  • Auteur

Après tests, c'est exactement ça.

Merci à vous pour votre réponse.

  • 3 semaines après...
Posté(e)

Après tests, c'est exactement ça.

Merci à vous pour votre réponse.

Bonjour,

Serait-il possible de publier un script d'exemple car je souhaiterai implémenter une copie de fichier du répertoire photo vers un répertoire gdrivebackup qui serait synchroniser avec CloudSync ?

Merci d'avance pour votre aide.

Posté(e)
  • Auteur

Bonjour,

Pour exemple, voici un script copiant tout ce qui se trouve dans le répertoire "/volume1/photo/" vers le répertoire "/volume1/gdrive/backup/"

#!/bin/sh

repPhoto="/volume1/photo"
repBck="/volume1/gdrive/backup"

# Parcours repPhoto
ls "$repPhoto" | while read elem
do
	# Si l'élément n existe pas dans repBck, il sera copié
	[[ ! -e "$repBck/$elem" ]] && cp -Rf "$repPhoto/$elem" "$repBck/$elem"
	# On ajoute l'élément dans l index synology
  	synoindex -a "$repBck/$elem"
done

Modifié par Dranaa

Posté(e)

Pour exemple, voici un script copiant tout ce qui se trouve dans le répertoire "/volume1/photo/" vers le répertoire "/volume1/gdrive/backup/"

Je pense que celui ci-dessous est plus simple et doit être plus efficace (attention, pas testé):

#!/bin/sh
PATH=/bin:/usr/bin:/usr/syno/bin # rsync est dans /usr/syno/bin

repPhoto="/volume1/photo"
repBck="/volume1/gdrive/backup"

rsync -a "$repPhoto/"  "$repBck/"  # important les "/" finaux pour rsync
synoindex -R "$repBck"

(Et oui, rsync n'est pas réservé à la synchro à distance)

Modifié par CoolRaoul

Posté(e)

Bonsoir,

J'ai configuré une tâche exécutée par "root" localisée dans /volume1/public/job.sh

#!/bin/sh
PATH=/bin:/usr/bin:/usr/syno/bin # rsync est dans /usr/syno/bin

repPhoto="/volume1/photo"
repBck="/volume1/gdrive/BACKUP/PHOTOS"

rsync -a "$repPhoto/"  "$repBck/"  # important les "/" finaux pour rsync
synoindex -R "$repBck"

Lorsque j'exécute manuellement la tâche, je n'obtiens aucun message d'erreur mais le répertoire de destination reste vide.

DSM est en version 5.0-4458 Update 1

Auriez-vous une idée à me soumettre ?

Merci.

Posté(e)

J'ai configuré une tâche exécutée par "root" localisée dans /volume1/public/job.sh

/../

Lorsque j'exécute manuellement la tâche, je n'obtiens aucun message d'erreur mais le répertoire de destination reste vide.

Peux-tu ajouter l'option "-v" à rsync et voir ce que ça donne? ("rsync -av" à la place de "rsync -a")

**edit**

à faire en exécutant le script en ligne de commande, pas via le bouton "exécuter" du planificateur de taches.

NB: poser une question à la suite d'un fil dont le sujet est préfixé "résolu" n'est pas optimal pour sa visibilité

Modifié par CoolRaoul

Posté(e)

Cela fonctionne bien en ligne de commande avec le paramètre modifié.

Est-ce que la tâche s'exécutera "normalement" via l'interface DSM ?

Désolé d'avoir posté dans un fil résolu, j'y prêterai plus attention la prochaine fois.

Merci pour l'aide.

Posté(e)

Cela fonctionne bien en ligne de commande avec le paramètre modifié.

La modification du paramètre ("-v") est juste destinée à augmenter la verbosité, le comportement ne devrait pas être modifié.

Est-ce que la tâche s'exécutera "normalement" via l'interface DSM ?

J'imagine que tu veux parler du planificateur de tache DSM?

Normalement pas de raison que ça fasse de différence mais par défaut tu te retrouves "aveugle" sur l'exécution de la tache (visualisation des éventuels messages d'erreur)

Pour cette raison, je te conseille d'ajouter la ligne suivante en début de script pour forcer la génération d'un fichier log quand le script s'exécute dans ce contexte:

[ -t 0 ] || exec >photo_backup.log 2>&1

Assures-toi aussi que le script est bien exécutable (chmod +x /volume1/public/job.sh)

Modifié par CoolRaoul

Posté(e)

Merci pour tes conseils.

Je suis néophyte sous Linux et c'est vraiment bien de trouver de l'aide précise et efficace.

Je recréerai un nouveau fil si j'ai "encore" besoin d'aide.

Bon weekend tout de même.

Posté(e)

Pour cette raison, je te conseille d'ajouter la ligne suivante en début de script pour forcer la génération d'un fichier log quand le script s'exécute dans ce contexte:

[ -t 0 ] || exec >photo_backup.log 2>&1

Correction (désolé):

[ -t 0 ] || exec >/tmp/photo_backup.log 2>&1
                  ^^^^
Posté(e)

Merci. J'ai ajouté la ligne corrigée et ai relancé le script =>.il est en train de tourner actuellement.

Autre sujet, quelle distribution me conseillerais-tu pour "faire mes armes" sous linux ?

Posté(e)

Autre sujet, quelle distribution me conseillerais-tu pour "faire mes armes" sous linux ?

A mon avis, le bon critère pour un débutant est de choisir une distrib avec une communauté active et "newbie friendly"

Va faire un tour sur différents forums Linux, des que tu en trouve un qui te semble sympa (ou les débutants ne se font pas prendre de haut) choisi la distrib correspondante, tu te l'installes dans une machine virtuelle (Virtualbox sous Windows par exemple) et ça roule.

  • 11 mois après...
Posté(e)

Bonjour,

Auriez-vous l'amabilité de mettre en ligne le script final pour les énormes quiches comme moi svp ?

Merci

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…

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.