Bonjour;
j'ai créée un petit script qui permet d'envoyer une requête Ping à chaque ip contenue dans un fichier texte. Le script me dit ensuite pour chacun Ip si la machine est ONLINE ou OFFLINE.
Et le scan recommence tous les x secondes.
Avec le code en entier et toutes ces fonctionnalités j'optient ce résultat :
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 #!/bin/bash while true; do for i in $( cat $repertoireIP ) do ping -q -c2 $i > /dev/null if [ $? -eq 0 ] then fonction_ONLINE elif [ $? -eq 1 ] then fonction_OFFLINE fi done sleep $rfch
(Le OFFLINE passe bien sur en ONLINE quand la machine ciblé ce connecte à internet. )
Le code n'est certainement pas bien optimisé mais il fonctionne c'est tout ce que je lui demande.
Je voudrais maintenant ajouter une fonctionnalité qui permet d'afficher lors du rapport de scan le nom de la machine devant l'ip de la machine (ce qui est plus simple pour l'identifier rapidement). J'aimerais qu'à partir d'un fichier texte de cette forme :
NOM_MACHINE1
xxx.xxx.x.xx
NOM_MACHINE2
xxx.xxx.x.xx
Le script soit capable de faire la différence entre la ligne qui contient le nom de la machine et la ligne de dessous qui contient lip de la machine. Et d'effectuer une action différente en fonction.
Pour moi il devrait avoir cette forme :
( # = ce que je voudrais obtenir )
Même avec des recherches sur internet je n'est pas trouvé de fonction capable de faire la différence entre la ligne 1 et la ligne 2 de mon fichier texte.
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 #!/bin/bash while true; do for i in $( cat $repertoireIP ) do # si la variabe i contient du texte, alors : echo $i #puis recommencer la boucle en lissant la ligne suivante. # Ou si la variable i contient une adresse ip, alors : ping -q -c2 $i > /dev/null if [ $? -eq 0 ] then fonction_ONLINE elif [ $? -eq 1 ] then fonction_OFFLINE fi done sleep $rfch
J'espère avoir été clair dans mes explications, si quelqu'un peut m'aider, même à trouver un début de réponde, un bout de code, je lui en serais reconnaissant
Partager