―― 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.
--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.
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
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.
――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)
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