Qnap [ Tuto ] Créer un environnement autorun.sh

fbike

Nouveau membre
16 Janvier 2019
3
0
0
Bonsoir

Après de longues années avec un dlink 325 qui m’a laché, je suis propriétaire depuis 1 mois dun QNAP 251+ que j’ai upgradé avec 8 Go de RAM.

Je souhaitais modifier certains fichiers sous /etc de telle manière à compléter ma configuration mais la particularité du QTS est d’écraser les fichiers de configuration système (pour des raisons de sécurité). Je me suis penché sur le problème en surfant sur la toile, et finalement, j’ai créé un environnement de démarrage dont le fonctionnement est inspiré de la méthode employée par linux et d’autres Os sous unix, à savoir l’exécution de fichier de démarrage dans un certain ordre.

Les fichiers commencent par la lettre S (comme Start) et son numérotés afin d’imposer un ordre séquentiel.
Mon environnement est basé sur le fichier autorun.sh que j’ai créé en montant le système de fichier de configuration de démarrage (dans mon cas) :

Code:
mount /dev/sdc6 /tmp/config


Je crée le fichier autorun.sh avec les variable d’environnement spécifiques à ma configuration. Ils correspondent à l’emplacements des dossiers.

autorun.sh :

Code:
#!/bin/sh
export STARTUP_HOME=/share/CACHEDEV1_DATA/Startup
export STARTUP_SCRIPTS=$STARTUP_HOME/scripts
export STARTUP_LOGS=$STARTUP_HOME/log

$STARTUP_HOME/bin/autorunmaster.sh >$STARTUP_LOGS/Startup.log 2>&1

Ne pas oublier de donner la permission d’exécution a autorun.sh par la commande :

Code:
chmod +x autorun.sh

ou, autre possibilité : (octal)

Code:
chmod 755 autorun.sh

puis je démonte le système de fichier de configuration du démarrage par les commandes

Code:
cd /
umount /tmp/config

Ensuite je crée l'arborescence suivante sous /share/CACHEDEV1_DATA/Startup :
(attention il y a deux fichiers .sh dans l'arborescence : le autorunmaster.sh et le S01localservices.sh
Code:
|____bin
| |____autorunmaster.sh
|____conf
|____log
|____scripts
| |____S01localservices.sh

A l'aide des commandes suivantes :

Code:
mkdir  /share/CACHEDEV1_DATA/Startup
mkdir /share/CACHEDEV1_DATA/Startup/bin
mkdir /share/CACHEDEV1_DATA/Startup/conf
mkdir /share/CACHEDEV1_DATA/Startup/log
mkdir /share/CACHEDEV1_DATA/Startup/scripts

Dans le dossier /share/CACHEDEV1_DATA/Startup/bin

je crée le fichier autorunmaster.sh dans le répertoire /share/CACHEDEV1_DATA/Startup/bin . Ce script est chargé d'exécuter tous les scripts shells situés sous /share/CACHEDEV1_DATA/Startup/scripts, selon leur ordre défini par l'utilisateur

Code:
#!/bin/sh
# Script  autorumaster.sh
# Ce script est appelé a chaque redémarrage à partir d’autorun.sh 

export STARTUP_HOME=/share/CACHEDEV1_DATA/Startup
export STARTUP_SCRIPTS=$STARTUP_HOME/scripts
export STARTUP_LOGS=$STARTUP_HOME/log
export STARTUP_LOGFILE=$STARTUP_LOG/Startup.log

for i in $STARTUP_SCRIPTS/S??* ;do
        [ -x $i ] && echo -n "`date` -- demarrage de " && echo "$i"  && $i  >> $STARTUP_LOGFILE
done

je n'oublie pas de le rendre exécutable par la commande

Code:
chmod +x /share/CACHEDEV1_DATA/Startup/bin/autorunmaster.sh

ou, autre possibilité

Code:
chmod 755 /share/CACHEDEV1_DATA/Startup/bin/autorunmaster.sh

Pour mon usage personnel, je complète à chaque démarrage le fichier /etc/services qui contient les ports spécifiques à configurer : bastillion par exemple sur le port TCP 8256. Cela permet de repérer les ports ouverts plus facilement lors de la commande netstat.

Donc je place le fichier S01localservices.sh dans le dossier scripts (/share/CACHEDEV1_DATA/Startup/scripts). Sans oublier de le rendre exécutable par la commande :

S01localservices.sh

Code:
#!/bin/sh

#
# Ajoute les services locaux à la fin du fichier /etc/networks
#

SERVICES=/etc/services
cat<<EOF >> $SERVICES
bastillion              8256/tcp                #web based shell
mc                      18888/tcp               #mission commander
twonky                  9000/tcp                #standard twonky server admin
EOF


Code:
chmod +x /share/CACHEDEV1_DATA/Startup/scripts/S01localservices.sh

ou encore

Code:
chmod +x /share/CACHEDEV1_DATA/Startup/scripts/S01localservices.sh


Enfin, pour que l’autorun.sh fonctionne, il faut donner l’autorisation d’exécuter les fichiers autorun.sh par une option que l’on trouve dans le panneau de contrôle sous l’onglet matériel et cocher la case « Exécuter les processus définis par l’utilisateur du démarrage, dans le cas contraire le système n’exécutera pas l’autorun.sh.




Scriptez bien !!!!!
:-D