Indexation baie Synology : installation de Synology-mediamon

L’indexation automatique d’une baie Synology n’est pas optimale, et pose souvent problème quand on passe par NFS pour copier les fichiers (par exemple). J’avais écrit l’année dernière un article pour installer le paquet “Media Indexer” de Francis Besset.

Hélas, depuis le passage en DSM 6, cela ne marchait plus vraiment : je retrouvais souvent le service arrêté. Et en allant aux nouvelles, le paquet a été retiré, et manifestement il ne faut pas compter sur une nouvelle version.

Je me suis donc tourné vers une autre solution appelée synology-mediamon. L’installation n’a rien de compliquée, mais elle se passe en mode “ligne de commande”. Je fais donc ce petit tuto en français, n’en ayant pas trouvé d’autres.

Tout ceci ne concerne bien entendu que les répertoires définis pour le “Indexing Service” dans le Control Panel :

La première chose à faire est d’installer Python 3 s’il n’a pas été installé précédemment. Rien de plus simple, aller dans le Package Center, sélectionner “Community” dans la partie gauche, et donc installer Python 3. Vous verrez peut-être qu’une autre version de Python est installée (la v2) : peu importe, installer Python 3 à côté.

Il va d’abord falloir récupérer le fichier zip de la page github de synology-mediamon. Cliquer sur “Clone or Download” à droite, puis sur “Download ZIP”. En plus du readme, il y a deux fichiers qu’il va falloir copier dans /volume1/homes/admin/ : mediamon.py et S99mediamon.sh. On peut utiliser le File station de Synology pour ce faire :

Passons maintenant à la partie “ligne de commande”. Il va falloir activer SSH pour pouvoir se connecter à la baie Synology : aller dans le Control Panel, sélectionner “Terminal et SNMP” dans la partie gauche, cocher SSH et lui attribuer un numéro de port :

Il ne reste plus qu’à se connecter à partir d’un terminal (l’adresse IP de la baie est indiquée dans le Control Panel -> Info Center -> onglet Network). Dans mon cas, cela donne ceci :

ssh admin@192.168.1.14 -p 2158

Taper ensuite la commande suivante pour être l’utilisateur root (il faudra retaper le mot de passe) :

sudo su

On installe ensuite pyinotify :

python3 -m ensurepip
python3 -m pip install pyinotify

Pour vérifier que pyinotify fonctionne, taper :

python3 -m pyinotify -v /tmp

Vous devez alors voir des choses comme ceci défiler (taper Ctrl-c pour arrêter) :

Pour que synology-mediamon démarre automatiquement, Il faut maintenant copier S99mediamon.sh dans le répertoire /usr/local/etc/rc.d/, puis lui accorder les permissions 0755 :

cp /volume1/homes/admin/S99mediamon.sh /usr/local/etc/rc.d/
chmod 755 /usr/local/etc/rc.d/S99mediamon.sh

Il ne reste plus qu’à redémarrer votre baie Synology pour vérifier que le service démarre bien automatiquement. Sinon, taper la commande suivante :

/usr/local/etc/rc.d/S99mediamon.sh start

Pour vérifier que tout fonctionne, ajouter des fichiers (via NFS tant qu’à faire) dans l’un des répertoires /volume1/photo, /volume1/music, ou /volume1/video, et vérifier le fichier de log de mediamon. On doit voir  défiler des “synoindex -a” pour chaque fichier ajouté (pour chaque inode j’ai l’impression !) :

Voilà, ça a l’air de bien fonctionner, pas de problème depuis que je l’ai installé.

Le développeur note que si vous avez un très grand nombre de fichiers multimédias, le message d’erreur “No space on device” peut survenir. Cela ne signifie pas qu’il n’y a plus d’espace disque, mais que l’on a atteint la limite du nombre de fichiers surveillés. Il est possible d’augmenter cette limite en tapant la commande suivante (en tant que root) :

echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p

Bonne indexation !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *