Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/07/2011, à 10:21

Bybeu

[super résolu] Problème avec grep et or

Bonjour tous
J'ai un souci avec grep : je dois détecter par un script si le routeur a bien choppé une ip privée par son serveur dhcp avant de mettre en place par des filtres ebtables basés en partie sur cette adresse.
L'adresse ip obtenue (ou pas) par le routeur est dans un fichier qui est mis à jour par un service client dhcp.
Je compte faire une commande "until adresse ip ok do sleep 3 done"
J'essaye ça en ligne de commande avant de l'intégrer dans le script mais je tourne en rond depuis quelques jours:
conf actuelle:

grep 'u_ip="192.' /etc/udhcpc/info.br0
u_ip="192.168.22.245"
echo $?
0

cool

mais

grep 'u_ip="10.'\|'u_ip="172.'\|'u_ip="192.' /etc/udhcpc/info.br0
echo $?
1

ou

grep -e 'u_ip="10.'\|'u_ip="172.'\|'u_ip="192.' -f /etc/udhcpc/info.br0
pas de retour, alors Ctrl+C
echo $?
130

ou encore

grep "u_ip=\"10."|"u_ip=\"172."|"u_ip=\"192." /etc/udhcpc/info.br0
-sh: u_ip="172.: not found
-sh: u_ip="192.: not found
pas de retour, alors Ctrl+C
echo $?
127

Je nage comme une bille.

Dernière modification par Bybeu (Le 26/07/2011, à 12:35)

En ligne

#2 Le 26/07/2011, à 10:31

Pacifick_FR42

Re : [super résolu] Problème avec grep et or

Si le but est juste de savoir qui est connecté sur ton serveur DHCP tu peux :

 nmap -sP 192.168.0.*

Hors ligne

#3 Le 26/07/2011, à 10:43

Bybeu

Re : [super résolu] Problème avec grep et or

Non, le but est de savoir si le client lui-même, configuré comme client dhcp, a bien obtenu sa conf depuis le serveur, avant que le client lui-même ne s'applique à lui-même les filtres ipfilters (c'est pour le rendre autonome du serveur pour ses règles ebtables). Merci quand-même, j'ai essayé ta commande sur le routeur pour voir si elle pouvait m'aider, mais elle n'est pas dispo. De toute façon, il aurait fallu que je teste si elle renvoyait 10. 172. ou 192. et en plus ça n'aurait pas gazé car le routeur dispose d'un mécanisme de fallback en cas d'échec dhcp qui le renvoie sur une ip configurable statique, mais qui devrait rester privée. Je dois vraiment lire ce fichier info.br0

En ligne

#4 Le 26/07/2011, à 11:11

Bybeu

Re : [super résolu] Problème avec grep et or

En fait je crois que mon problème c'est que je sais même pas faire un OU à deux options, alors à trois, t'imagines !

En ligne

#5 Le 26/07/2011, à 11:39

Bybeu

Re : [super résolu] Problème avec grep et or

egrep 'u_ip="10.|u_ip="192.|u_ip="172.' /etc/udhcpc/info.br0              
u_ip="192.168.22.245"
echo $?
0

En ligne

#6 Le 26/07/2011, à 11:40

johndo

Re : [super résolu] Problème avec grep et or

essaie ça :

egrep 'u_ip="(10\.|1[79]2\.)' /etc/udhcpc/info.br0

Hors ligne

#7 Le 26/07/2011, à 11:42

Bybeu

Re : [super résolu] Problème avec grep et or

Merci, c'est plus joli ! smile

En ligne

#8 Le 26/07/2011, à 12:34

Bybeu

Re : [super résolu] Problème avec grep et or

Merci, johndo c'est plus joli ! smile
Soyons fous smile
Et ça, ça marcherait ?

egrep 'u_ip="1(0\.|[79]2\.)' /etc/udhcpc/info.br0

et ça ?

egrep 'u_ip="1(0|[79]2)\.' /etc/udhcpc/info.br0

voyons...

ENAURME !!!

until [ `egrep 'u_ip="1(0|[79]2)\.' ifile` ]; do
echo Pas glop
sleep 30
done
echo Glop

j'ai du rajouter des apostrophes inversées autour de toute la commande egrep, sinon j'avais des erreurs

sh: u_ip="1(0|[79]2)\.: unknown operand

Merci encore, ça va même me simplifier le script : même plus besoin de tester l'existence préalable du fichier smile

En ligne

#9 Le 26/07/2011, à 13:45

johndo

Re : [super résolu] Problème avec grep et or

Bybeu a écrit :

j'ai du rajouter des apostrophes inversées autour de toute la commande egrep, sinon j'avais des erreurs

ça s'appelle des backquotes et c'est déprécié. la forme $(..) est préférée

sinon :

until egrep -q 'u_ip="1(0|[79]2)\.' ifile &>/dev/null
do
echo Pas glop
sleep 30
done
echo Glop

Dernière modification par johndo (Le 26/07/2011, à 14:46)

Hors ligne

#10 Le 26/07/2011, à 16:29

FRUiT

Re : [super résolu] Problème avec grep et or

Les backquotes ne sont pas dépréciées mais juste plus anciennes (et moins confortables).


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#11 Le 26/07/2011, à 17:28

Bybeu

Re : [super résolu] Problème avec grep et or

johndo a écrit :

ça s'appelle des backquotes et c'est déprécié. la forme $(..) est préférée

Oui, je sais, mais ça respecte mieux le français et ça reflétait mieux mon niveau. En plus ça écorche un poil la gueule à prononcer wink ... j'espère qu'un fumeux des ministères ne nous couve pas un "bacottes". 

johndo a écrit :

sinon :

until egrep -q 'u_ip="1(0|[79]2)\.' ifile &>/dev/null
do
echo Pas glop
sleep 30
done
echo Glop

Avec &>/dev/null à la fin, ça retourne toujours 0. Ça à l'air de marcher sans le "&" et même sans rien.
J'ai aussi essayé avec grep -qE pour voir et ça marche aussi... j'y comprends pas grand chose, on trouve des infos contradictoires un peu partout, style egrep=grep -E et ailleurs que le tube "|" doit être échappé dans egrep mais pas dans grep.... avec un exemple à l'envers... grrrrr ... ou alors c'est des histoires de version.
Et avec $(..), ça donnerait quoi dans le script?

En ligne