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.

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
Avec le code en entier et toutes ces fonctionnalités j'optient ce résultat :

Nom : retouche.png
Affichages : 273
Taille : 192,1 Ko

(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 )

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
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.

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