Synology Programmer l'arrêt du paquet après utilisation

Chavaquis

Nouveau membre
6 Mars 2023
5
1
3
Bonjour à tous,

Je viens récemment de me lancer dans le monde des serveurs NAS et plus précisément suite à l'achat d'un NAS Synology DS220J.
Dès lors, je suis très novice dans ce domaine mais souhaite en apprendre plus, j'ai effectué plusieurs recherches de mon problème mais les réponses que j'ai trouvé sont assez vieux et j'ai cru comprendre que le DSM a pas mal changé depuis, je possède actuellement le DSM 7.1.1-42962 Update 4.

Je me tourne dès lors vers la communauté pour mon problème qui est le suivant :

J'utilise à 90% mon NAS pour du multimédia géré par le paquet "Plex media server", tout fonctionne très bien mais ce paquet empêche l'hibernation de mes disques durs (SSD je précise).
Sans vouloir rentré dans le débat de l'usure des disques durs suite à l'hibernation (qui je pense n'est pas comparable en terme d'usure pour les modèles SSD par rapport au mécanique HDD), je souhaite créer une tâche planifiée où lorsque je n'utilise pas Plex en lecture sur un appareil tiers, mon NAS le détecte, stop le paquet "Plex media server" permettant ainsi d'hiberner après X minutes configurées au préalable.

Malheureusement, j'ai regardé via le Planificateur de tâche mais cela reste très sommaire du type arrêter ou démarrer à une telle heure etc..
J'ai cru lire sur différent topic qu'il est possible de le faire via scipt ou commande mais de nouveau, mes compétences très limitées m'ont vite stopper dans la démarche.

Merci d'avoir pris le temps de lire mon problème et je reste dans l'attente de lire vos réponses :)
 
Petit up,

Pour le moment, j'en suis à ce niveau de script pour la vérification du paquet Plex Server et de le démarrer le cas échéant


Citation


#!/bin/bash
echo Checking if plex is running...
#if /usr/syno/bin/synopkg is_onoff "PlexMediaServer" > /dev/null
if echo > /dev/tcp/127.0.0.1/32400 > /dev/null
then
echo Plex is running.
exit 0
else
echo Plex is not running. Will attempt to start it.
echo
synopkg start "PlexMediaServer"
exit 1
fi
1678530730978.gif

Je souhaite maintenant faire dans le sens inverse, mais que le script vérifie si j'utilise le paquet (en regardant un film par exemple) et du coup ferme le paquet uniquement si celui-ci n'est pas utilisé.

Avez-vous une idée de comment réaliser cela ?

Merci,

J.
 
Tu peux le faire avec l'API de Plex.

Merci et effectivement, j'ai réussi à récupérer l'information d'une lecture en cours avec la commande GET suivante :

curl -v http://[IP Adress]:32400/status/sessions?X-Plex-Token=[MonToken]

La valeur "size" détermine le nombre de session active.
Maintenant, as-tu une idée de comment puis-je récupérer cette valeur dans une commande afin que si celle-ci est égal à zéro, je puisse enchainer sur la fermeture du paquet PlexMediaServer ?
 
  • J'aime
Réactions: EVO
J'ai réussi à utiliser la commande :
Code:
test=$(curl http://[MonIp]:32400/status/sessions?X-Plex-Token=[MonToken] | grep 'size=' | head -n 1)

Ce qui me renvoi à :
Code:
echo $test
<MediaContainer size="0">

Mais lorsque j'utilise la commande :
Code:
if [ $test == '<MediaContainer size="0">' ]
then
echo 'Aucune diffusion'
else
echo 'Diffusion en cours'
fi

La réponse est du "if" est 'Diffusion en cours' alors que le size est à "0", ce qui n'est pas correct.
 
c'est basique et moche mais ça devrait fonctionner
diff=${test:22:1}
echo $diff
 
Dites, vous ne voudriez pas utiliser les balises de code ?

1678548479566.png

Et mettre de l'indentation dans vos codes ? Ce n'est pas facile à lire sinon... 😅
PS : il existe des plugins pour les éditeurs pour formatter le code comme il faut ^^
 
Pour si peu de lignes, non. J'aide simplement Chavaquis qui pose une question.
 
Pour si peu de lignes, non. J'aide simplement Chavaquis qui pose une question.
Ça coûte pourtant pas grand chose en temps de passer par la balise et ça aide à la lisibilité et visibilité.
Sans parler que c’est en police type terminal donc pas d’ambiguïté de caractères.