[LINUX] [Pour les débutants] Surveillance des processus à l'aide de cron

introduction

―― J'ai décidé d'écrire cet article cette fois parce que j'ai écrit un résumé sur cron dans le précédent Résumé et erreurs courantes sur cron. Dans la continuité de la dernière fois, j'écrirai sur la surveillance des processus à l'aide de cron.

――Ce sera un article pour les débutants comme avant.

――Je n'écrirai pas sur cron en détail, donc si vous ne savez pas grand-chose sur cron, il sera peut-être plus facile de comprendre si vous lisez l'article précédent ou vérifiez-le.

Présentation du script

--Surveillance des processus

--Affichez la liste des processus cibles avec pgrep et vérifiez le nombre de scripts que vous surveillez en cours d'exécution à partir de la liste.

code

vi


crontab -e 

*/5 * * * * /bin/sh shell.sh


ShellScript


#! /bin/bash

PROCESS_NAME=nginx

count=`pgrep $PROCESS_NAME | wc -l`

if [ $count = 0 ]; then

    echo "$PROCESS_NAME is stop"

    systemctl start nginx

    echo "$PROCESS_NAME is Start"

else
    echo "$PROCESS_NAME is running"
fi

Commentaire

vi


crontab -e 

*/5 * * * * /bin/sh shell.sh
//Si vous écrivez ce qui précède dans crontab, le jeu de commandes sera exécuté toutes les 5 minutes.

*/5 * * * * /bin/sh shell.sh >> /N'importe où/log.txt 2>&1
//Si vous souhaitez conserver le contenu exécuté sous forme de fichier, vous pouvez l'écrire comme ceci.
//2>&1 est un mélange de sortie standard et d'erreur.

ShellScript


#! /bin/bash 
//C'est comme un cliché d'écrire une coquille.

PROCESS_NAME=nginx
//Ici, vous définissez le processus que vous souhaitez surveiller. Cette fois, c'est nginx.

count=`pgrep $PROCESS_NAME | wc -l`
//Je veux compter le nombre de processus en cours, donc je compte le nombre de processus et les assigne à une variable.
//Obtenez une liste des ID de processus qui correspondent au modèle avec pgrep.
// |(pipeline)Avec wc-Connectez l pour obtenir le nombre de lignes dans le processus.
* En passant, wc peut afficher le nombre de mots et d'octets en plus du nombre de lignes car le nombre de mots est l'origine du nom.

if [ $count = 0 ]; then

    echo "$PROCESS_NAME is stop"

    systemctl start nginx

    echo "$PROCESS_NAME is Start"

else
    echo "$PROCESS_NAME is running"
fi

//Si le nombre de processus définis précédemment dans cette instruction if est égal à 0, cela signifie que nginx est arrêté, alors écrivez le shell pour démarrer comme ci-dessus.
//Sinon, le processus nginx a démarré normalement et fait écho à lui."$PROCESS_NAME is running"Est retourné.

―― Il est facile de combiner ce paramètre cron avec le script shell décrit, mais vous pouvez exécuter le shell toutes les 5 minutes pour vérifier le processus, et si le processus est arrêté, il démarrera automatiquement.

Site de référence

――Vous pouvez approfondir votre compréhension des scripts shell en lisant les articles ci-dessous.

Introduction des commandes de base pour les scripts shell pour les débutants [Référence des scripts du shell de commande UNIX et Linux] (https://shellscript.sunone.me/tutorial.html)

finalement

Cette fois, j'ai écrit un article sur la surveillance des processus à l'aide de cron, qui est une continuation de l'article que j'ai écrit la dernière fois. Si vous avez des erreurs, faites-le moi savoir dans les commentaires, etc., car ce sera mon étude. La prochaine fois, j'aimerais écrire un article sur les paramètres de Vagrant et du middleware.

Recommended Posts

[Pour les débutants] Surveillance des processus à l'aide de cron
Implémentation et description à l'aide de XGBoost pour les débutants
Analysons les données Covid-19 (Corona) en utilisant Python [Pour les débutants]
Paramètres Spacemacs (pour les débutants)
Retour en utilisant le processus gaussien
Manuel python pour les débutants
J'ai essayé d'utiliser cron
Algorithme Dikstra pour les débutants
OpenCV pour les débutants en Python
[Python] Introduction à la création de graphiques à l'aide de données de virus corona [Pour les débutants]
[Python] Accès et recadrage des pixels d'image à l'aide d'OpenCV (pour les débutants)
Détection d'anomalies par encodeur automatique à l'aide de keras [Exemple d'implémentation pour les débutants]
[Pour les débutants] J'ai essayé d'utiliser l'API Tensorflow Object Detection
Régression de processus gaussien utilisant GPy
Surveillance intérieure à l'aide de Raspberry Pi
Flux d'apprentissage pour les débutants en Python
[Pour les débutants] kaggle exercice (merucari)
Distribution Linux recommandée pour les débutants
Surveillance des changements de site Web à l'aide de python
CNN (1) pour la classification des images (pour les débutants)
Construction de l'environnement Python3 (pour les débutants)
Vue d'ensemble de Docker (pour les débutants)
Python #function 2 pour les super débutants
Traiter sur GPU en utilisant chainer.cuda.elementwise
Grammaire de base Python pour les débutants
ShinobiLayer: surveillance de processus avec surveillance avancée
Pandas 100 coups pour les débutants en Python
Python #function 1 pour les super débutants
#List Python pour les super débutants
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
[Pour les débutants de Kaggle] Titanic (LightGBM)
Mémorandum de commande Linux [pour les débutants]
Raccourci Linux pratique (pour les débutants)
[Apprentissage automatique Python] Recommandation d'utilisation de Spyder pour les débutants (à partir d'août 2020)