Bonjours a vous !,

(je m'excuse si ne publie pas correctement sur le forum c'est ma première fois)

j’aimerai tout bonnement faire un script shell qui m'envoie par mail tout les 24h avec dedans : un état d'un site internet et si le serveur est up ou encore le temps de chargement de la page.

En ce qui concerne la gestion du ping, la création d'un tableau pour stocker les variables et l'envoi d'un mail tout fonctionne correctement dans des script séparée, sauf qu'il faut que je regroupe tout en un.

c'est la que cela coinces par exemple avec le code ci-joint le script n’exécute pas commande (ou variable ) pong, il reste bloquer sur le premier echo et utilise toutes la ressources cpu.

Je suis (malheureusement) débutant en script, je ne vois pas ce qui cloche .


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
#!/bin/bash
 
rep=1
let "testHeure=0"
 
 
#fonction qui fait que le script tourne en boucle 
function tourneEnBoucle {
    echo -e "\n"
}
 
 
 
function ping  {
    heure=$(date +%Hh%M)
    echo "Est ce que je rentre dans le ping"
 
    ########LE PING########BASTIEN
 
    pong=$(ping -c 2 -q -w 1 xx.xx.xx.xx|grep rtt | cut -d "/" -f5 | cut -c 1-2);
    #Le ping échoue quand le temps de rep dépasse 1s .
 
    echo -e "$(date): ttr $pong ms\n"; 
    #Affiche l'heure et la date en plus de la valeur du temps de ping 
 
 
    # Defini si la variable pong est nul ou non, si non lance le chargement de la page :
    if [ -n "$pong" ] #si le ping est ok, l'on passe au chargement du site web.
    then 
        tempsLoadingSite=$(curl -m 2 -s -o /dev/null -w '%{time_total}\n' https://www.xxx.fr);
 
        # le curl charge le site en mode silencieux -m 2 timeout 2s , le -o l'enregistre dans la "poubelle" puis -w (write out)qui va nous afficher 
        #la varaible time_total en secondes
 
 
        echo "le site est good, $tempsLoadingSite s de chargement  "
    else
        echo "Le ping ne fonctionne pas "
    fi
 
    ########LE PING########
 
 
    if [ $heure = "16h56" ] && [ $testHeure -eq 1 ]
    then
        let "testHeure=0"
    fi
 
    sleep 5
}
 
 
 
while [ "$rep" -eq 1 ]
do
    ping
    tourneEnBoucle
done


Un grand merci pour votre aide ou pour votre explication !