Comment exécuter automatiquement un script shell au démarrage sur systemd Linux

La configuration suivante discutera d’un exemple de base sur la façon d’exécuter un script shell pendant un temps de démarrage sur systemd Linux. Il y a peut-être diverses raisons pour lesquelles vous pourriez vouloir exécuter un script shell pendant le démarrage de Linux comme par exemple pour démarrer un service personnalisé particulier, vérifier l’espace disque, créer une sauvegarde, etc.
L’exemple ci-dessous servira de modèle de base qui pourra être modifié ultérieurement pour répondre à vos besoins spécifiques. Dans l’exemple ci-dessous, nous allons vérifier un espace disque d’un répertoire /home/ pendant un temps de démarrage et écrire un rapport au répertoire /root/.

Unité de service systemd

D’abord, nous devons créer un script de démarrage systemd ex.disk-space-check.serviceet le placer dans le répertoire /etc/systemd/system/. Vous pouvez trouver l’exemple d’un tel script de démarrage systemd ci-dessous :

After=mysql.serviceExecStart=/usr/local/bin/disk-space-check.shWantedBy=default.target
  • Après : Indique à systemd à quel moment le script doit être exécuté. Dans notre cas, le script sera exécuté après le démarrage de la base de données mysql. Un autre exemple pourrait être network.target etc.
  • ExecStart : Ce champ fournit un chemin complet le script réel à exécuter
  • WantedBy : Dans quelle cible de démarrage l’unité systemd doit être installée

Ce qui précède est un minimum absolu que notre unité de service systemd doit contenir afin d’exécuter notre script au moment du démarrage. Pour plus d’informations et les options à utiliser, voir la page de manuel systemd.service :

$ man systemd.service

Scriptum shell de démarrage

Puis, nous créons notre script shell personnalisé qui sera exécuté lors du démarrage de systemd. L’emplacement et le nom du script sont déjà définis par l’unité de service comme /usr/local/bin/disk-space-check.sh. Le contenu du script peut être simple comme :

#!/bin/bashdate > /root/disk_space_report.txtdu -sh /home/ >> /root/disk_space_report.txt
A la recherche d’un analyste de systèmes Linux !
L’Institut géophysique de l’UAF, est à la recherche d’un analyste de systèmes Linux expérimenté pour rejoindre son équipe d’analystes et d’ingénieurs en cyber-infrastructure de recherche. LOCATION : Fairbanks, Alaska, USA
APPLY NOW

Configurer et installer

Avant de redémarrer notre système, nous devons rendre notre script exécutable :

# chmod 744 /usr/local/bin/disk-space-check.sh

Ensuite, installez l’unité de service systemd et activez-la afin qu’elle soit exécutée au moment du démarrage :

# chmod 664 /etc/systemd/system/disk-space-check.service# systemctl daemon-reload# systemctl enable disk-space-check.serviceCreated symlink from /etc/systemd/system/default.target.wants/disk-space-check.service to /etc/systemd/system/disk-space-check.service.

Si vous souhaitez tester votre script avant de l’exécuter au redémarrage :

# systemctl start disk-space-check.service# cat /root/disk_space_report.txt Thursday 7 July 11:30:25 AEST 20161.5G /home/

Tout est prêt. Après le redémarrage de votre système Linux, l’unité systemd ci-dessus invoquera le script shell qui sera exécuté au moment du démarrage.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.