Je suis débutant en programmation shell. L'objectif de mon exercice est de vérifier si le serveur web n'est pas actif. Mon code génère une erreur et je ne sais pas comment résoudre.
function checkServer(){
ping -c1 -t "ipServer" 2>/dev/null
if["$?" != 0]; then
echo "Serveur inactif"
fi
}
checkServer
Erreur affichée : Ligne 13 : [ 1: commande introuvable
Bash est très sensible aux espaces. Il en faut un entre if et [ et aussi à l'intérieur. Mais en bash, if (($?)); then sera mieux pour l;es calculs arithmétiques.
mais, comme je l'ai déjà dit : il vaut mieux utiliser netcat
EDIT : j'en ai oublié une : != est un opérateur lexical : il compare des chaînes. les nombres peuvent être des chaînes, mais quand ce sont des nombres, il vaut mieux utiliser un opérateur arithmétique : -lt -le -eq -ne -ge -gt
- Edité par dantonq 14 juillet 2022 à 22:13:40
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Avec les espaces, je n'ai pas d'erreur mais je pense que le résultat n'est pas le bon. Quand je fais un ping sur le 8.8.8.8, j'ai "Serveur inactif".
tu as fait des modifications dans ton script ? alors, il faut nous montrer la nouvelle version, sinon, pour voir ce que fait la commande ping, enlève la redirection et dis-nous ce qu'affiche le terminal.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Dantonq, je suis encore de retour. J'ai encore deux fonctions. L'un affiche un message quand le disque est plein et l'autre affiche l'espace occupé par les processus en mémoire en Mo.
1ère fonction
Function checkSpaceDisk()
{
#Extraction du nom des disques installés
for DISK in $(df -x tmpfs -x devtmpfs |grep dev |awk -F ‘’ ‘’ ‘{ print $1}’ |cut -d/ -f 3)
Do
#Espace disque utilisé
espaceUtilise=$(df |grep grep -w « $DISM » |awk -F '' '' ‘{ print $5}’)
#Espace disque total. Valeur retournée à la caractère G à la fin donc j'extrais les chiffres
espaceTotal=$(df -x tmpfs -x devtmpfs |grep dev |awk -F '' '' ‘{ print $2}’) |grep '-o [[:digit:]])
if [[ '' $espaceUtilise '' -eq '' espaceTotal '' ]]; then
Echo « Le disque $DISK est plein »
Fi
done
}
Message d'erreur
512 : nombre entier attendu comme expression
Fonction 2
La fonction 2 A pour objectif d'extraire la quantité de mémoire occupée et à l'affiché en méga octet.
Function checkSpaceDisk()
{
#Récupération de la mémoire totale
totalMemoire=sudo cat /proc/meminfo |grep MemTotal
#Liste de tous les processus avec tri
listeProcessus=ps -eo pid, %mem --sort=-%mem
#à partir de là, je n'avance plus. L'objectif c'est de parcourir la liste des processus et la quantité
#extrait ces deux colonnes, convertir la quantité % en méga Octet avec l'opération
#taille="$processusEnCours" * "$totalMemoire
}
EDIT : corrigé par le kara, avant mon intervention.
- Edité par dantonq 19 juillet 2022 à 16:44:25
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Script pour vérifier si serveur web est actif
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique