This site uses cookies! Learn More

Ce site utilise des cookies !

En continuant à utiliser ce site, vous vous engagez à nous permettre de stocker des cookies sur votre ordinateur.

Messages recommandés

Salut,

J'ai fais un script en python pour l'indexation partielle (pas une ré-indexation complète) et le nettoyage des entrées obsolètes.

Il permet d'ajouter les entrées manquantes, de supprimer les entrées obsolètes et de supprimer les fichiers indexés 2 fois (et plus) par erreur.

Il fonctionne nickel chez moi, je n'ai plus besoin de lancer une re-indexation complète qui durait entre 2 et 3 semaines (!!!!) sur mon ancien DS110j.

Sur le DS212+ que je possède maintenant, pas de problèmes non plus.

Pré-requis

- il faut ipkg

- py26-psycopg2 : module pour se connecter à une base PostgreSQL (à installer avec ipkg) :

ipkg install py26-psycopg2
Ce qui va installer toutes les dépendances automatiquement. Installation Le script est téléchargeable ici : Il faut qu'il soit présent sur le NAS. Utilisation On peut le lancer en console (telnet ou ssh) sur le Syno :
python2.6 index_updater.py --help[/code]


pour voir les options.

Il est possible de le rendre exécutable et de la lancer sans python2.6...



Pour une utilisation "normale", je propose d'utiliser ces options :

[CODE]python2.6 index_updater.py -A[/code]

Pour savoir exactement ce qui est fait, il est possible de rajouter -v 2, ce qui créera un fichier index_updater.log avec le détail des actions effectuées.

Afin de tester d'abord ce qui sera fait il est possible de mettre l'option -t, dans ce cas, RIEN n'est modifié et en combinaison avec -v 2, tout ce qui serait fait est détaillé.

[u][b]Commentaire[/b][/u]

Comme dit, chez moi il fonctionne... Mais en cas d'erreur, merci de m'en tenir informé...

Prochaines améliorations :

- Permettre d'exécuter la mise à jour d'un répertoire (ou plusieurs) seulement

A+

Michel

Cliquer ici pour voir le tutoriel

Modifié par MrWaloo

Partager ce message


Lien à poster
Partager sur d’autres sites

Oh mon dieu, c'est le script parfait ! À tel point que je ne cesse de me demander pourquoi Synology ne l'a pas implémenté à la base…

Merci mille fois et plus encore :D

Questions :

1/ Où doit-on mettre le fichier 'index_updater.py' ?

2/ Est-il possible de pouvoir lancer le script (avec les arguments qui vont bien) directement depuis la GUI du DSM ?

3/ Testé sur DSM4 v2198 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

1) Tu me met ou tu veux :D le tout c'est de se souvenir ou ^^

2) Pas sur du tout depuis la GUI, peut être avec le SPK CRON (qui permet de gerer le cron du syno via la GUI) faut voir si tas un bouton execution immédiate ou truc du genre

3) Pas encore je pense, vu que le firmware est tout neuf

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci bud77 pour ton aide et ces remarques ;)

Je n'utilise la plupart du temps que l'audiostation sur mon NAS. Le serveur DAAP et DLNA sont donc désactivés.

Au lancement, le script vérifie cependant que le serveur multimédia est allumé, dommage.

Ce qui est plus gênant par contre, c'est que même après avoir lancé le serveur multimédia (et même le "serveur itunes"), le script me renvoie toujours la même "erreur" ! (et en effet le fichier dans /etc/synoinfo.conf le mediaserver est toujours indiqué comme étant désactivé alors que je le vois bien lancé dans la GUI)

Bref je ne sais pas trop où est le souci mais ce qui serait formidable c'est que le script ne demande pas que le serveur soit lancé :)

Il y a tout de même 4 applications qui dépendent de ce même index, tout le monde n'a forcément utilité des 4 en même temps.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

Quelle "erreur" est renvoyée par le script ?

Je suis encore en DSM3.2

(edit: enfin quelqu'un d'autre teste ce script...)

edit2: tu peux stp me donner le retour de


grep runmediaservice /etc/synoinfo.conf

Modifié par MrWaloo

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

Quelle "erreur" est renvoyée par le script ?

edit2: tu peux stp me donner le retour de


grep runmediaservice /etc/synoinfo.conf

runmediaservice="no"[/code]

Actuellement, c'est normal parce que le serveur DLNA est arrêté.

Là où c'est beaucoup moins normal, c'est que la valeur ne change pas quand le serveur est activé !

Je ne sais pas si c'est possible mais ce qui serait bien ce serait de vérifier si le serveur DLNA [i]OU[/i] le serveur DAAP [i]OU[/i] AudioStation [i]OU[/i] PhotoStation est activé.

Partager ce message


Lien à poster
Partager sur d’autres sites

Comme toutes ces applications sont maintenant modularisées, il va faloir que j'installe DSM4.0 et que je cherche comment détecter le fait qu'elles soient installées...

Le script actuel est compatible DSM3.2.

J'ai encore un peu de taff...

Partager ce message


Lien à poster
Partager sur d’autres sites

Comme toutes ces applications sont maintenant modularisées, il va faloir que j'installe DSM4.0 et que je cherche comment détecter le fait qu'elles soient installées...

Le script actuel est compatible DSM3.2.

J'ai encore un peu de taff...

Pas "installées" mais lancée et une seule des quatre.

Enfin, ceci est bien évidemment sujet à la justesse de ma compréhension de l'OS du NAS…ce qui est loin d'être ma spécialité ^^

Bref, si tu peux le faire, fais-le !

Moi qui ajoute bcp de fichiers audio par voie torrent donc non pris en charge par l'auto re-index des Syno* ton script est du pain béni.

*le Syno ne regarde que ce qui a été rajouté dans /MUSIC /VIDEO /PHOTO par FTP(S), AFP, FileStation, etc… bref uniquement si le fichier a été transféré par le biais d'outils ou de protocoles intégrés à l'OS de base du NAS, right?

Modifié par Amsonia

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de faire un test avec ta nouvelle version (n'oublies pas de mettre-à-jour le changelog!).

Seuls AudioStation et PhotoStation sont activées.

Voilà ce que ça me sort :

Asimov> python2.6 index_updater.py -t v 2 -a -c -o -i

Traceback (most recent call last):

  File "index_updater.py", line 577, in <module>

	main()

  File "index_updater.py", line 571, in main

	ret = IndexUpdater(add=add, clean_db=clean_db, clean_orphans=clean_orphans, del_dbl_indexed=del_dbl_indexed, test=test, verbose=verbose)

  File "index_updater.py", line 102, in __init__

	self.main()

  File "index_updater.py", line 480, in main

	self._readConfiguration()

  File "index_updater.py", line 305, in _readConfiguration

	index_folder = eval(open(self.INDEX_FOLDER_CONF).read(), {"__builtins__": None}, {"true": True, "false": False})

  File "<string>", line 1, in <module>

NameError: name 'null' is not defined

Je ne sais pas trop ce que ça veut dire :s

Il y une erreur quelque part ou ça dit juste que le script n'a rien eu à ajouter/modifier/supprimer de la BDD, bref que cette dernière est à jour ?

edit: je viens de refaire le test en sachant qu'il y avait du contenu non indexé.

J'ai d'abord lancé le script (sans -t) sans activer le serveur multimédia et ça n'a rien indexé. (rien de visible dans AudioStation)

J'ai ensuite refait la même manip avec le serveur multimédia activé et pareil, rien de nouveau dans l'index.

Mes fichiers nouveaux étaient deux albums dans un sous-sous-dossier de /MUSIC si ça peut aider.

Modifié par Amsonia

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu peux poster le contenu du fichier /usr/syno/etc/index_folder.conf STP ?

edit: si le script renvoie cette erreur, c'est que l'exécution est stoppée, l'indexation n'est pas faite

Modifié par MrWaloo

Partager ce message


Lien à poster
Partager sur d’autres sites

D'après l'erreur, le fichier /usr/syno/etc/index_folder.conf contient quelque chose que je n'ai pas prévu (il n'est pas vide... ???) et c'est mal interprété.de base

Ce fichier contient la configuration de l'indexation en dehors des partages *de base* (music, video, photo), si par exemple public doit être indexé...

Bref ça contient la config accessible dans Service d'indexage média / Dossier indexé (qui devrait d'ailleurs être au pluriel...)

Partager ce message


Lien à poster
Partager sur d’autres sites

Alors, le contenu de /usr/syno/etc/index_folder.conf est

null
Pour /var/log/messages, je ne vois pas de messages concernant le processus synoindexd qui correspondent à la date/heure de mon test :s HS : par contre j'ai plein de
postfix/smtpd[10207]: warning: database /usr/syno/mailstation/etc/aliases.db is older than source file /usr/syno/mailstation/etc/aliases[/code]

Partager ce message


Lien à poster
Partager sur d’autres sites

Le script est mis à jour pour la gestion du 'null'.

Pour les log, c'est autre chose... Les seuls log qui sont valables sont ceux générés par le script quand on utilise l'option -v 2

Partager ce message


Lien à poster
Partager sur d’autres sites

j'essaye de comprendre ton log. Il y a des choses bizarres, du moins que je ne comprends pas.


2012-03-16 14:00:14,577 - INFO	 - *-* Working on share [music] whose path is ''

2012-03-16 14:00:14,578 - INFO	 - [music] is to be indexed

2012-03-16 14:00:14,579 - INFO	 - *-* Working on share [PHOTO] whose path is '/volume1/PHOTO'

2012-03-16 14:00:14,580 - INFO	 - [PHOTO] is NOT to be indexed

2012-03-16 14:00:14,581 - DEBUG    - Share path 'PHOTO' should not be indexed, it is removed from DBs

2012-03-16 14:00:14,582 - INFO	 - Command to run: 'synoindex -D "PHOTO"'

2012-03-16 14:00:14,583 - INFO	 - *-* Working on share [MUSIC] whose path is '/volume1/MUSIC'

2012-03-16 14:00:14,584 - INFO	 - [MUSIC] is NOT to be indexed

2012-03-16 14:00:14,585 - DEBUG    - Share path 'MUSIC' should not be indexed, it is removed from DBs

2012-03-16 14:00:14,586 - INFO	 - Command to run: 'synoindex -D "MUSIC"'

2012-03-16 14:00:14,587 - INFO	 - *-* Working on share [video] whose path is ''

2012-03-16 14:00:14,588 - INFO	 - [video] is to be indexed

2012-03-16 14:00:14,589 - INFO	 - *-* Working on share [photo] whose path is ''

2012-03-16 14:00:14,590 - INFO	 - [photo] is to be indexed

2012-03-16 14:00:14,591 - INFO	 - *-* Working on share [VIDEO] whose path is '/volume1/VIDEO'

2012-03-16 14:00:14,593 - INFO	 - [VIDEO] is NOT to be indexed

2012-03-16 14:00:14,594 - DEBUG    - Share path 'VIDEO' should not be indexed, it is removed from DBs

2012-03-16 14:00:14,594 - INFO	 - Command to run: 'synoindex -D "VIDEO"'

Les dossiers partagés (ceux par défaut) qui sont paramétrés (via la GUI) pour NE PAS être indexés : - /volume1/homes - /volume1/PHOTO Les dossiers (de base) qui sont paramétrés (via la GUI) pour POUR être indexés : - /volume1/MUSIC - /volume1/VIDEOS Et, si je lis correctement ton log, ça dit que /volume1/MUSIC ne doit pas être indexé mais que 'music' (en minuscules dont) qui est dit être à la racine
path is ''[/code]

doit être indexé.

Quelle est la différence entre /volume1/MUSIC et le music en minuscules ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Comment tu as fait pour avoir des noms de partage en MAJUSCULES ?

Les partages multimédia par défaut sont en minuscules... Pourquoi tu as VIDEOS avec un S ?

Je croyais que les 3 partages music, video et photo étaient créés automatiquement dès que le serveur Multimédia est activé...

C'est un postulat de départ qui s’effondre...

edit: Bon je vais sans doute devoir demander de la configuration à l'utilisateur...

J'y réfléchis ce soir

Modifié par MrWaloo

Partager ce message


Lien à poster
Partager sur d’autres sites

Je croyais que les 3 partages music, video et photo étaient créés automatiquement dès que le serveur Multimédia est activé...

C'est tout à vrai ... Par contre si le répertoire existe déjà avant que l'on active le serveur Multimédia, avec une simple variation de majuscule, ça marche ...

C'est comme cela que mon serveur Multimédia utilise les répertoires Music, Video et Photo ....

Partager ce message


Lien à poster
Partager sur d’autres sites

Il est possible que j'ai créé moi-même ces dossiers partagés et que, par chance, ils correspondent avec ceux créés par défaut par le NAS.

Je dis que c'est possible parce que je ne me souviens pas avoir activé le serveur multimédia dès mes premières heures d'utilisation du NAS.

Ceci étant dit, mes 3 dossiers sont bien considérés comme ceux par défaut par le NAS, en témoigne cette capture d'écran.

Et quand je parcous le NAS via DLNA (depuis ma TV par ex) ça reconnaît bien que MUSIC contient de la musique, que VIDEO contient les films, etc.

Et le DLNA ne me montre pas mes autres dossiers partagés (DL, DIVERS, etc.)

Pour ta deuxième question, j'ai fait une erreur tout à l'heure (dans le train en 3G…) en tapant VIDEOS avec un 'S'. C'est bien VIDEO, en majuscules mais au singulier.

deeao.png

Par ailleurs, dans Panneau de config > Dossier partagé, seuls MUSIC et VIDEO sont paramétrés pour être indexés.

Mais il s'agit là, je crois, d'une autre indexation que celle faite pour le serveur média/audiostation/photostation/itunes server. Il s'agit là, je crois, de l'indexation nécessaire à la recherche de fichiers/dossier via le FileStation.

En espérant t'avoir éclairé sur mon cas…

N'hésite pas à me demander des précisions de conf. Je ne pensais pas avoir un système si personnalisé ! En fait je ne le pensais pas personnalisé du tout ^^

edit : voici le contenu de mon smb.conf


[global]

workgroup=WORKGROUP

local master=no

realm=*

printing=cups

winbind enum groups=yes

idmap gid=96000-196000

passdb backend=smbpasswd

security=user

idmap uid=10000-110000

printcap name=cups

load printers=yes

winbind enum users=yes

[home]

valid users=%U

comment=home

writable=yes

directory mode=0777

path=/var/services/homes/%U

create mode=0777

browseable=no

[DIVERS]

invalid users=nobody,@famille-amis,@leechers,@mail,contact,guest,lejardinier,up10ad,web,nobody

valid users=nobody,@administrators,nobody

comment=""

path=/volume1/DIVERS

guest ok=yes

browseable=yes

fileindex=no

mediaindex=no

edit synoacl=no

ftp disable list=no

ftp disable modify=no

ftp disable download=no

read list=nobody,nobody

write list=nobody,@administrators,nobody

writeable=no

[DL]

invalid users=nobody,@leechers,@mail,contact,guest,leechauto,lejardinier,up10ad,web,nobody

valid users=nobody,@famille-amis,@users,@administrators,nobody

comment=""

path=/volume1/DL

guest ok=yes

browseable=yes

fileindex=no

mediaindex=no

edit synoacl=no

ftp disable list=no

ftp disable modify=no

ftp disable download=no

read list=nobody,nobody

write list=nobody,@administrators,@famille-amis,@users,nobody

writeable=yes

[homes]

invalid users=nobody,@leechers,@mail,contact,lejardinier,up10ad,web,nobody

valid users=nobody,@administrators,nobody

comment="user home"

path=/volume1/homes

guest ok=yes

browseable=yes

fileindex=no

mediaindex=yes

edit synoacl=no

ftp disable list=no

ftp disable modify=no

ftp disable download=no

read list=nobody,nobody

write list=nobody,@administrators,nobody

writeable=no

[MUSIC]

invalid users=nobody,@mail,contact,leechauto,lejardinier,up10ad,web,nobody

valid users=nobody,@leechers,guest,@famille-amis,@users,@administrators,nobody

comment=""

path=/volume1/MUSIC

guest ok=yes

browseable=yes

fileindex=yes

mediaindex=yes

edit synoacl=no

ftp disable list=no

ftp disable modify=no

ftp disable download=no

read list=nobody,@famille-amis,@leechers,@users,guest,nobody

write list=nobody,@administrators,nobody

writeable=no

[PHOTO]

invalid users=nobody,@leechers,@mail,contact,guest,lejardinier,up10ad,web,nobody

valid users=nobody,@famille-amis,@administrators,nobody

comment=""

path=/volume1/PHOTO

guest ok=yes

browseable=yes

fileindex=yes

mediaindex=yes

edit synoacl=no

ftp disable list=no

ftp disable modify=no

ftp disable download=no

read list=nobody,@famille-amis,nobody

write list=nobody,@administrators,nobody

writeable=no

[SOFTWARE]

invalid users=nobody,@mail,contact,leechauto,lejardinier,up10ad,web,nobody

valid users=nobody,@leechers,guest,@famille-amis,@users,@administrators,nobody

comment=""

path=/volume1/SOFTWARE

guest ok=yes

browseable=yes

fileindex=yes

mediaindex=no

edit synoacl=no

ftp disable list=no

ftp disable modify=no

ftp disable download=no

read list=nobody,@famille-amis,@leechers,@users,guest,nobody

write list=nobody,@administrators,nobody

writeable=no

[VIDEO]

invalid users=nobody,@mail,contact,leechauto,lejardinier,up10ad,web,nobody

valid users=nobody,@leechers,guest,@famille-amis,@users,@administrators,nobody

comment=""

path=/volume1/VIDEO

guest ok=yes

browseable=yes

fileindex=yes

mediaindex=yes

edit synoacl=no

ftp disable list=no

ftp disable modify=no

ftp disable download=no

read list=nobody,@famille-amis,@leechers,@users,guest,nobody

write list=nobody,@administrators,nobody

writeable=no

[web]

invalid users=nobody,@famille-amis,@leechers,@mail,contact,lejardinier,up10ad,web,nobody

valid users=nobody,@administrators,nobody

comment="System default shared folder"

path=/volume1/web

guest ok=yes

browseable=yes

fileindex=no

mediaindex=no

edit synoacl=no

ftp disable list=no

ftp disable modify=no

ftp disable download=no

read list=nobody,nobody

write list=nobody,@administrators,nobody

writeable=yes

Modifié par Amsonia

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est tout à vrai ... Par contre si le répertoire existe déjà avant que l'on active le serveur Multimédia, avec une simple variation de majuscule, ça marche ...

C'est comme cela que mon serveur Multimédia utilise les répertoires Music, Video et Photo ....

Merci pour la précision, ça veut dire qu'il faut que je vérifie ça dans le script.

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.