Timer SystemD

Timer SystemD
Dans le système d'exploitation Linux, Systemd est un gestionnaire de services et un gestionnaire de systèmes. Il agit comme un système d'initial lorsqu'il est exécuté comme un premier processus de démarrage. Il tient et garde une trace des services d'espace utilisateur. Pour démarrer les services des utilisateurs connectés, il commence par des instances distinctes. Les minuteries sont des fichiers unitaires de SystemD qui ont une extension de «.minuteur". Ces fichiers contrôlent le «.Service »Fichiers ou événements dans un système.

La plupart du temps, les minuteries sont utilisées en remplacement de Cron. Il nous fournit un support intégré pour les événements de temps de calendrier. L'avantage des minuteries sur les cronjobs est qu'ils fournissent les contrôles plus fins des événements. Ceux-ci sont utilisés lorsqu'une tâche nécessite une planification sur un système d'exploitation Linux. Par exemple, si nous voulons démarrer un processus lorsque notre machine est en bottes, nous utilisons les minuteries à cette fin. Auparavant, Cron était l'outil pour faire ces types d'emplois. Mais de nos jours, les minuteries sont utilisées à ces fins.

Les minuteries sont presque comme Cron d'une manière qu'ils fournissent tous les deux une approche et un mécanisme pour la planification des tâches dans Linux OS. Cron a ses inconvénients, c'est pourquoi les minuteries le remplacent. Par exemple, si nous voulons planifier notre sauvegarde à 5 heures du soir et en quelque sorte, notre système s'arrête entre 4h50 et 5h10, Cron saute la sauvegarde dans cette affaire qui tue le but de planifier.

Pour travailler avec les minuteries, nous avons besoin des choses suivantes comme des conditions préalables:

  • Privilèges racinaires
  • Terminal

Les fonctions SystemD Timers ont besoin de deux fichiers de configuration qui sont:

Unité de minuterie: L'unité de minuterie garde une trace du moment de l'utilisation des fichiers de service. Ils utilisent une extension de ".minuteur".

Unité de service: Ce sont des fichiers de configuration d'unité. Ils gèrent et définissent les processus système. Ils ont ".Extension du service »comme indiqué précédemment.

Maintenant, nous discutons de la façon dont nous pouvons planifier une sauvegarde de serveur automatisé. Un autre avantage du service SystemD est qu'il ne permet pas à vos tâches d'avoir plusieurs instances. Si d'une manière ou d'une autre, nous recommençons une tâche alors qu'elle est déjà démarrée, elle saute la tige de lancement et la maintient jusqu'à ce que la tâche de course actuelle ait terminé son travail. Après avoir configuré notre service Systemd et fait du programme, nous créons un fichier avec le même nom que notre service.

La seule différence est qu'il a une extension de «.minuterie »et non de service. Par exemple, nous avons un service nommé «XYZ». Dans ce cas, nous avons «xyz.Service "comme nom de service et" XYZ.minuterie "comme nom de notre minuterie. Une autre chose à garder à l'esprit est que ces deux fichiers doivent être dans le même répertoire.

Étapes pour créer une minuterie systemd

Créer un script de test
Ceci est un script bash de base comme exemple:

Linux @ Linux-VirtualBox: ~ $ Nano Test.shot

Le script précédent imprime la date.

Créer un fichier de service
Maintenant, nous créons un fichier de service ou une unité pour exécuter le script bash.

Linux @ Linux-VirtualBox: ~ $ nano / etc / systemd / System / New.service

Ceci est un exemple de script pour créer le fichier de service. Il a deux options: l'une est «unité» et l'autre est «service». Dans cette étape, nous disons d'abord le système du nom de l'unité et de ce que fait cette unité. Ensuite, nous définissons un service avec le type de «simple». Enfin, nous définissons que le service commence en cas d'échec.

Créer un fichier de minuterie
Après avoir créé le fichier de service, nous créons maintenant un fichier de minuterie. Nous exécutons la commande suivante pour créer un fichier de minuterie:

Linux @ Linux-VirtualBox: ~ $ nano / etc / systemd / System / Test.minuteur

Il a trois options: «Unit», «Timer» et «Installer». Encore une fois, après avoir exécuté la commande, nous définissons ce que fait notre unité. Il a une option «temporisat». Avec l'aide de ce, nous disons au système lorsque notre script s'exécute. La dernière option, «Installer», indique quand notre service démarre en fonction des niveaux d'exécution. Cette option est activée uniquement lorsqu'un service est activé à l'aide de SystemCTL.

Maintenant, discutons des options plus en profondeur pour obtenir une meilleure prise sur les minuteries.

Unité: Cela spécifie l'appareil que nous voulons s'allumer lorsque la minuterie s'épuise. Le paramètre passé est le nom d'une unité dont l'extension ne doit pas être «.minuteur". Si nous ne pouvons pas le faire ou ne voulons pas passer le nom de l'unité, la valeur par défaut est le service qui a le même nom que le nom du «.minuterie »dans ce cas. Comme déjà discuté, la meilleure approche est que nous devons garder le nom du service et le nom de la minuterie.

Minuteur: L'option de minuterie transporte toutes les informations sur la minuterie qui est définie. Dans l'option Timer, nous trouvons tous les paramètres dont nous avons besoin pour déclencher la minuterie. Les sections de la minuterie ont de nombreuses options telles que:

Onactivesec =, onbootsec =, onstartupsec =, onUnitActivesec =, onUnitinActiveSec =

Dans la section temporaire, nous disons également au système quand exécuter le processus et quand terminer ce processus en fonction du fuseau horaire du serveur.

La section temporaire a également une option très utile et importante qui est:

Oncalender = sets

Cette option définit la fréquence à laquelle une tâche est effectuée. Par exemple, si nous voulons planifier une tâche quotidiennement, nous utilisons cette option comme «Oncalendar = quotidien». Cela exécute la tâche quotidiennement.

Si vous souhaitez être plus précis, vous pouvez également transmettre une date spécifique en fonction de vos exigences. Une autre chose à garder à l'esprit tout en travaillant avec les minuteries est que les déclencheurs quotidiens sont toujours à minuit, ce qui est un temps de pointe dans les systèmes informatiques. Ainsi, pour éviter les problèmes pendant cela, nous vous recommandons d'utiliser le «randomisédelaysec =». Il retarde le calendrier au hasard avec une différence de quelques secondes. Il nécessite une valeur qui représente les secondes que le minuteur peut être retardé.

Le problème est que quotidiennement est toujours déclenché à 12h. Weekly est toujours déclenché le lundi minuit. Et chaque année est toujours déclenché le premier janvier. Tous ce sont des temps de pointe et il y a une panne de réseau pendant ces derniers.

Activer et démarrer la minuterie
C'est la dernière étape de notre tâche. Nous effectuons cette étape systématiquement. Pour effectuer cette activité, nous devons faire un «démon de démon». Pour voir si un nouveau fichier est créé ou si un ancien fichier est mis à jour, l'ensemble du système est rechargé.

Dépannage
Parfois, nous ne sommes pas en mesure d'attraper tous les problèmes à l'avance. Dans la minuterie SystemD, nous pouvons nous assurer de les attraper en vérifiant les unités de minuterie «systemd» avant de les activer. Pour ce faire, nous utilisons la commande «Systemd-Analyze-Verify». Cette commande nous aide à découvrir un problème potentiel et à le résoudre en conséquence.
Il existe également d'autres commandes qui nous aident à dépanner et à diagnostiquer nos minuteries. Par exemple, il existe une commande qui nous aide à vérifier si notre service est exécuté avec succès ou non. La commande est la suivante:

Linux @ Linux-VirtualBox: ~ $ sudo journalctl -s Today -f -u Test.service

Cette commande nous montre lorsque le service a commencé pour la dernière fois et le résultat de notre commande bash comme indiqué dans l'extrait suivant:

Conclusion

Nous avons étudié la minuterie du système. Après avoir obtenu un examen détaillé de ce qu'est un temporisateur de système et de son fonctionnement, nous avons mis en œuvre un exemple pour vous expliquer l'idée plus brièvement dans laquelle nous avons expliqué chaque étape en plusieurs parties.