Script de vérification des processus en cours

Bonjour,

j’ai réalisé un script qui s’exécute tous les jours sur mon serveur Debian.

il envoie par mail a l’administrateur la liste de tous les processus interdits qui tournent sur le serveur.

Pour cela j’ai créé un fichier texte listant des processus interdits (fichier nommé “procinterdit”) et j’ai pris un processus au hasard pour exemple.

Je liste tous le processus en cours que j’envoie dans un autre fichier texte(fichier nommé “procencours”) puis je fait la différence entre les 2 fichiers ce qui me permet d’obtenir les processus interdits en cours de fonctionnement dans un dernier fichier (fichier nommé “difference”)

Enfin j’envoie par mail à un des mes utilisateurs la liste des processus interdits en cours c’est a dire le contenu du fichier “difference”

J’aimerais toutefois que le mail ne soit envoyé à l’administrateur qu’en cas de processus interdit lancé et non systématiquement. En effet, pour l’instant le mail est envoyé même si aucun processus interdit n’est lancé.

Voici le contenu de mon script :

#!/bin/sh

ps -a > /home/john/procencours
diff procencours procinterdit > difference
cat difference | mail -s “Processus interdits en cours” jean@rosea-phoenix.org

Je pense qu’il faudrait contrôler que le fichier “difference” soit vide et n’envoyer le mail qu’au cas ou il n’est pas vide. Seulement, je ne vois pas comment l’incorporer dans mon script.

Merci d’avance

J’ai essayé de modifier mon code ce qui donne :

#!/bin/sh

ps -a > /home/john/procencours
diff procencours procinterdit > difference
if wc -l difference > 0 then
cat difference | mail -s “Processus interdits en cours” jean@rosea-phoenix.org
if wc -l difference < 0 then
mail -s “Aucun Processus interdit en cours” jean@rosea-phoenix.org

salut,

Merci pour ta réponse Watael, je vais tester ça. Toutefois lorsque je fais mon diff et mon ps -a je fais des redirections vers des fichiers.

En revanche lorsque j’exécute des wc -l je fais des test ou les “>” symbolisent le “supérieur à” et les “<” symbolisent le “inférieur à”

J’espère être clair.

dans le contexte c’est aussi des redirections (il existe sûrement quelque part un fichier 0, qui contient la sortie de(s) wc).

pour que ce soit compris comme des signes mathématiques, il faudrait utiliser l’Évaluation arithmétique dont dispose le shell.

Je n’en ai pas parlé, car en utilisant le test aproprié, tu ne feras plus autrement.