Synology besoins d'aide pour créer un script.

@xavax
Salut :)
Aux vues de ce que je lis dans tes messages, tu ne sembles pas super au point avec les scripts (ce qui coÏncide bien avec ta demande d'aide ^^).
Cela dit, il faut vraiment que tu comprennes parfaitement ce que tu fais avec des scripts, et plus généralement avec la ligne de commande.
Car, tu peux tout pêter sur ton système. Et comme il s'agit ici d'un NAS, ça peut être problématique pour les données hébergées dessus.
Voilà quelques documentations à lire, à essayer, afin de ta familiariser avec le langage BASH et donc les commandes shell, ce qui inclus les scripts bien entendu ^^ (ces docs sont issues de mes propres recherches lorsque j'ai voulu faire des scripts pour plein de choses ^^ il y aura des liens FR et des EN).
Il en existe plein d'autres ;)

Quant aux lignes de commandes à taper dans le shell, tu peux vérifier ce que ça fait avec ça : https://explainshell.com/
Exemple avec une commande qui va créer une archive : https://explainshell.com/explain?cmd=tar+zcf+blab.tgz+toto
 
je crois que j'ai compris ce que faisait le script, en fait il faut le lancer uniquement au demarrage du NAS. il analyse tout le temps si le processus est ok. du coup ca repart direct lorsque je le coupe. C'est op
par contre je n'ai pas compris pourquoi ca fonctionne avec

Code:
cd /volume1/ftp/AdGuardHome
./AdGuardHome

et pas avec

Code:
./volume1/ftp/AdGuardHome
 
je crois que j'ai compris ce que faisait le script, en fait il faut le lancer uniquement au demarrage du NAS. il analyse tout le temps si le processus est ok. du coup ca repart direct lorsque je le coupe. C'est op
par contre je n'ai pas compris pourquoi ca fonctionne avec

Code:
cd /volume1/ftp/AdGuardHome
./AdGuardHome

et pas avec

Code:
./volume1/ftp/AdGuardHome
Il faut virer le point :
Code:
/volume1/ftp/AdGuardHome

Le ./ sert à indiquer que tu veux aller/lancer depuis le répertoire courrant.
Donc si tu fait ./volume1/ftp/AdGuardHome alors que tu es dans ton dossier home, le chemin que va chercher le shell sera :
/volume1/homes/tonuser/volume1/ftp/AdGuardHome et donc forcément ça n'existe pas :eek:
 
  • J'aime
Réactions: FX Cachem et xavax
Bonjour tout le monde, je relance le sujet car adguard redemarre bien avec le NAS mais par contre si il plante il ne redemarre pas....
je ne comprends pas pourquoi.
Hier j'ai fait la mise a jour de DSM c'est peut etre lié ?
Code:
#! /bin/sh
echo "Test AdGuardHome"
if pidof AdGuardHome ; then
echo "AdGuardHome fonctionne"
else
cd /volume1/ftp/AdGuardHome
./AdGuardHome
echo "Lancement AdGuardHome..."
fi
Lorsque je fais cette commande

sudo kill $(pidof AdGuardHome)
le processus disparait bien mais il ne redemarre pas tout seul... je suis obligé d'executer le script depuis le planificateur de tache.
 
Dernière édition:
quand je fais un copier coller du script en ssh ca donne ceci :

Code:
xavvier@Syno:~$ sudo kill $(pidof AdGuardHome)
xavvier@Syno:~$ #! /bin/sh
xavvier@Syno:~$ echo "Test AdGuardHome"
Test AdGuardHome
xavvier@Syno:~$ if pidof AdGuardHome ; then
> echo "AdGuardHome fonctionne"
> else
> cd /volume1/ftp/AdGuardHome
> ./AdGuardHome
> echo "Lancement AdGuardHome..."
> fi
2022/07/19 08:54:16.298423 [info] AdGuard Home, version v0.108.0-b.10
2022/07/19 08:54:16.344648 [info] Initializing auth module: /volume1/ftp/AdGuardHome/data/sessions.db
2022/07/19 08:54:16.344927 [info] auth: initialized.  users:1  sessions:3
2022/07/19 08:54:16.344971 [info] Initialize web module
2022/07/19 08:54:16.422688 [info] AdGuard Home is available at the following addresses:
2022/07/19 08:54:16.423347 [info] Go to http://127.0.0.1:3001
2022/07/19 08:54:16.423373 [info] Go to http://[::1]:3001
2022/07/19 08:54:16.423396 [info] Go to http://192.168.18.248:3001
2022/07/19 08:54:16.423414 [info] Go to http://[2a032ff:fea0:c39a]:3001
2022/07/19 08:54:16.423434 [info] Go to http://10.8.0.1:3001
2022/07/19 08:54:17.467908 [info] Starting the DNS proxy server
2022/07/19 08:54:17.467964 [info] Ratelimit is enabled and set to 20 rps
2022/07/19 08:54:17.467980 [info] The server is configured to refuse ANY requests
2022/07/19 08:54:17.467996 [info] DNS cache is enabled
2022/07/19 08:54:17.468021 [info] MaxGoroutines is set to 300
2022/07/19 08:54:17.468060 [info] Creating the UDP server socket
2022/07/19 08:54:17.505132 [fatal] couldn't start forwarding DNS server: listening to udp socket: listen udp 0.0.0.0:53: bind: permission denied
Lancement AdGuardHome...

Le script est censé demarré a déarrage du nas et analyser en permanence si Adguard fonctionne. C'est ca qu'il ne fait plus... si j'active ce script toutes les 5 minutes via le planificateur ca repart mais pas sur que ca ne me crée pas des proocessus inutile.. car il relance toujours le script....
 
Dernière édition:
Le script est censé demarré a déarrage du nas
Oui
analyser en permanence
Non
Le script est exécuté une fois au démarrage du NAS et c'est tout. Si tu veux une vraie surveillance du processus, il faut passer par un WatchDog. Sinon, tu peux aussi créer une tâche planifiée (toutes les 15 minutes par exemple) pour exécuter le script.
 
ha ok du coup je pensais que ca surveillait.... bon ba dans ce cas je recommence a point de départ.... un watchdog c'est compliqué a mettre en place ?
 
C'est exactement ce que j'ai testé hier... sauf que ca me fait un message d'erreur. il l'execute 1 ou 2 fois et ensuite ca bloque
1658296915078.png
1658296864850.png
 
Je l'ai passé à 15 minutes et j'ai toujours ce message. Il me dit qu'une tache est déjà active...
 
Je l'ai passé à 15 minutes et j'ai toujours ce message. Il me dit qu'une tache est déjà active...
Ce n'est n'est pas parce que la tache est demandée à être executée toutes les 5 min qu'elle dure 5 min evidemment. Passer à 15 ne change rien comme tu l'as constaté, une heure non plus.
La tache ou le processus qu'elle appelle a pu planter, ça arrive. Ca m'est déjà arrivé.
Dans le plannificateur de taches, sélectionne ta tache, puis 'action' 'afficher le résultat', et regarde l'heure d'arret. S'il n'y en a pas c'est que le processus est planté. Dans ce cas tu constateras probablement que l'heure de début remontera à plusieurs jours, si je me refere à la date de ton premier message.
Si tel est le cas, il faut que tu tues la tache ou le processus qu'elle appelle avec un 'kill -9'. Il faut passer par SSH.
Si cela ne fonctionne pas avec 'kill -9' ce qui est malheureusement possible, je ne connais pas d'autre solution que d'arreter le nas et le relancer.
Peut-être que quelqu'un a une solution lorsqu'un 'kill -9' ne parvient pas à arreter un processus 'fantome'.
 
Dernière édition: