Aller au contenu

Messages recommandés

Posté(e) (modifié)

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.

  • 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) (modifié)

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) (modifié)

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) (modifié)

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) (modifié)

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...

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.