Bonjour,
Mon script ci-dessous ne marche toujours pas ! Que ce soit avec "tee" ou avec les redirections, le fichier "logs" ne s'est pas céé pas et rien ne s'affiche sur mon écran local (etmon "echo" de la boucle n'affiche rien non plus, même pas la valeur de £HOSTNAME !).
Je doute de la validité de tester sur
ps -eaf | grep -v grep | grep httpd | grep $VAR
(je l'avais donné moi-même initialement à titre d'exemple uniquement, sans aucune garantie de ma part qu'il s'agit du bon test à faire ou pas... Je ais juste que le ps -eaf |grep httpd me donne normalement les instances qui sont démarrées sur une machine donnée).
En plus, j'ai testé avec ceci :
for VAR in $(pgrep httpd)
mais cela non plus n'a pas marché!
Si quelqu'un aurait la gentillesse de m'aider, voici une description précise de mon problème :
J'ai plusieurs instances Apache qui se trouvent sur diférrents serveurs, mais qui se trouvent toutes dans :
/prod/{INST1, INS2, INS3, etc.)/
Le chemin vers le binaire qui teste la configuration d'une instance donnée et qui stop et start chacune des instances quelque soit le serveur, est :
/prod/{INS1, INS2, INS3, etc.}/apache2/bin/{configtest, stop, start}
Le script que je souhaite avoir doit faire ceci :
1° Chercher toute instance Apache démarrée, et si et seulement si elle est démarrée, alors lui faire : un "configtest", un "stop" et enfin un start". Pour toute éventuelle instances non-démarrées on ne fait rien...
2° Pour les instances démarrées, afficher le nom de l'instance démarée, suivi du hostname de son serveur sur l'écran distant de ma machine où le script a été lancé, et enfin écrire dans un fichier logs ces mêmes informations ainsi que toutes les erreurs de succès ou d'echec pour chaque instance et serveur (Le nom d'une instance peut-être le même, mais sur deux machines différentes !).
J'espère que j'étais plus clair dans la définition de mon problème...
En vous remaerciant d'avance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #!/bin/sh
for VAR in /prod/*/apache2/bin
do
if ps -eaf | grep -v grep | grep httpd | grep $VAR
then
(
echo "l'instance $VAR est actuellement démarrée sur $HOSTNAME, elle a donc être arrêtée et démarrée"
sudo $VAR/apachectl configtest
sudo $VAR/apachectl stop
sudo $VAR/apachectl start
)|tee logs
# 1>logs 2>&1
fi
done |
Partager