[Synology] Exécuter un script au démarrage

Salut à tous ! Vous avez un NAS Synology et vous voulez automatiser certaines tâches en exécutant un script au démarrage ? Pas de souci, je vais vous expliquer comment faire ça de manière simple et efficace. Voici les étapes à suivre :

1. Connexion en SSH

La première chose à faire est de se connecter à votre NAS en SSH en tant que root. Pour cela, suivez ces étapes :

  • Ouvrez votre terminal (ou utilisez un client SSH comme PuTTY si vous êtes sous Windows).
  • Connectez-vous avec un utilisateur du groupe administrators :

Tapez dans votre shell :

ssh votre_utilisateur@adresse_ip_du_nas
  • Passez en mode root en exécutant la commande suivante :

Tapez dans votre shell :

sudo -i

2. Placer le Script dans le Bon Répertoire

Maintenant que vous êtes connecté en tant que root, il faut placer votre script dans le répertoire /usr/local/etc/rc.d. Ce répertoire est spécialement conçu pour les scripts à exécuter au démarrage et il a l’avantage de ne pas être supprimé lors des mises à jour de DSM.

  • Copiez votre script dans ce répertoire. Par exemple, si votre script s’appelle mon_script.sh et qu’il se trouve dans votre répertoire personnel, utilisez la commande suivante :

Tapez dans votre shell :

cp /home/votre_utilisateur/mon_script.sh /usr/local/etc/rc.d/
  • Rendez votre script exécutable :

Tapez dans votre shell :

chmod +x /usr/local/etc/rc.d/mon_script.sh

3. Vérification et Redémarrage

Pour vous assurer que tout fonctionne correctement, vous pouvez redémarrer votre NAS et vérifier que votre script s’exécute bien au démarrage.

  • Redémarrez votre NAS depuis l’interface DSM ou en utilisant la commande suivante :

Tapez dans votre shell :

reboot

Astuces et Conseils

  • Testez votre script avant de le placer dans le répertoire /usr/local/etc/rc.d pour vous assurer qu’il fonctionne comme prévu.
  • Utilisez des logs dans votre script pour vérifier qu’il s’exécute correctement. Par exemple, ajoutez des lignes comme celle-ci pour écrire des messages dans un fichier log :

Tapez dans votre shell :

echo "Mon script s'est exécuté à $(date)" >> /var/log/mon_script.log

Voilà, c’est aussi simple que ça ! En suivant ces étapes, vous pourrez automatiser des tâches sur votre NAS Synology et gagner du temps. Si vous avez des questions ou des astuces supplémentaires, n’hésitez pas à les partager dans les commentaires. Bon scriptage ! :blush:

Bonjour,
Merci pour ton post, je cherche désespérément comment scripter sur mon Synology depuis un moment…
Saurais tu nous dire ou il faut poser un ficher que je souhaite executer journalièrement ?
J’ai besoin de redémarrer un routeur 5G que je peut joindre en SSH pour lui demander de redémarrer, simplement.
Je suis une quiche en script et l’interface de mon Synology ne permet pas de faire un script ssh …
Merci d’avance pour ton retour.
JeromeD

Bonjour,

Pose le fichier dans votre répertoire personnel, par exemple /home/nom_utilisateur ou directement dans /home/.

Le contenu du script à exécuter :

#!/bin/bash
sshpass -p "mot_de_passe_routeur" ssh -o StrictHostKeyChecking=no utilisateur_routeur@adresse_ip_routeur "reboot"
echo "Redémarrage routeur effectué à $(date)" >> /var/log/reboot_routeur.log

Remplace :

  • mot_de_passe_routeur par le mot de passe SSH de ton routeur.
  • utilisateur_routeur par le nom d’utilisateur SSH du routeur.
  • adresse_ip_routeur par l’IP de ton routeur 5G (ex. : 192.168.1.1).
  • La dernière ligne crée un log pour vérifier que le script s’exécute.
  • Note : La commande reboot est standard pour beaucoup de routeurs, mais vérifie dans la documentation de ton routeur si une autre commande est nécessaire (ex. : systemctl reboot ou /sbin/reboot).

Sauvegarde et rends le script exécutable :

  • Appuie sur Ctrl + O, puis Entrée pour sauvegarder, et Ctrl + X pour quitter.
  • Rends le script exécutable avec :

bash

chmod +x /home/reboot_routeur.sh

Hello Imran_Gaming,

Un très grand merci, je le fais le weekend prochain …
Cela me permet de rebooter un matériel professionnel (qui ne l’es pas assez …)