Souci avec la commande SET
Résolu/Fermé
A voir également:
- Souci avec la commande SET
- Invite de commande - Guide
- Commande terminal mac - Guide
- Commande dism - Guide
- Diskpart commande - Guide
- Commande scannow - Guide
14 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
23 mai 2007 à 09:22
23 mai 2007 à 09:22
Salut,
Tiens essaie ça, je l'ai un peu remanié :
Tiens essaie ça, je l'ai un peu remanié :
#! /bin/sh printf "%sAdresse MAC%s\t\tAdresse IP%s\tMois%s\tJour%s\tHeure\n" > trace while read ligne do grep "$ligne" loghcp.22 | grep DHCPACK >/dev/null retval=$? if [ "$retval" == 0 ] then set $(grep "$ligne" loghcp.22) IP=${8} mois=${1} jour=${2} heure=${3} printf "%s$ligne%s\t$IP%s\t$mois%s\t$jour%s\t$heure\n" >> "trace" fi done < fichier4.txt;-))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
23 mai 2007 à 09:25
23 mai 2007 à 09:25
J'avais oublié pour ton problème de paramètre supérieur à 10, il suffit de les appeler comme suit :
echo ${10} ${12} etc...;-))
coucou,
Au fait Jipicy, le script marche finalement. En fait il fallait remplacer les printf par echo " $ligne $IP £mois $jour $heure" >> "trace". A quoi sert ton premier printf?
Mais il recherche l'adresse MAc que pour les deux premières lignes.
t'es vraiment le meilleur ( si je peut te tutoyer).
J'ai une autre question:
Comment faire pour automatiser l'exécution du script. Je sais qu'il faut utiliser la commande Crontab, mais le, problème est que je logue mes fichiers par jour et que ce script doit prendre en paramètres deux fichiers de la forme: logacs.x et logdhcp.y avec x et y l'heure dans la journée.
J'ai pensé un truc du genre donnée l'heure en paramètre lors de l'exécution du script. mais ça non plus ce n'est pas automatique.
Merçi encore de votre aide.
Au fait Jipicy, le script marche finalement. En fait il fallait remplacer les printf par echo " $ligne $IP £mois $jour $heure" >> "trace". A quoi sert ton premier printf?
Mais il recherche l'adresse MAc que pour les deux premières lignes.
t'es vraiment le meilleur ( si je peut te tutoyer).
J'ai une autre question:
Comment faire pour automatiser l'exécution du script. Je sais qu'il faut utiliser la commande Crontab, mais le, problème est que je logue mes fichiers par jour et que ce script doit prendre en paramètres deux fichiers de la forme: logacs.x et logdhcp.y avec x et y l'heure dans la journée.
J'ai pensé un truc du genre donnée l'heure en paramètre lors de l'exécution du script. mais ça non plus ce n'est pas automatique.
Merçi encore de votre aide.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
23 mai 2007 à 10:35
23 mai 2007 à 10:35
Bizarre :-\
Voilà ce que ça donne chez moi :
Voilà ce que ça donne chez moi :
jp@MDK:~/tmpfs ssh$ cat fichier4.txt 00:12:3f:bd:50:21 00:19:b9:2f:a5:27 00:12:3f:bd:50:21 00:19:b9:2f:a5:27 00:12:3f:bd:50:21 00:19:b9:2f:a5:27 jp@MDK:~/tmpfs ssh$ cat loghcp.22 May 14 22:34:37 syslogserver dhcpd: DHCPACK on 132.0.0.24 from 00:12:3f:bd:50:21 (client_ACS) via eth0 May 14 22:44:37 syslogserver dhcpd: DHCPACK on 132.0.0.24 from 00:19:b9:2f:a5:27 (dell8) via eth0 jp@MDK:~/tmpfs ssh$ cat 2_dieng.sh #! /bin/sh printf "%sAdresse MAC%s\t\tAdresse IP%s\tMois%s\tJour%s\tHeure\n" > trace while read ligne do grep "$ligne" loghcp.22 | grep DHCPACK >/dev/null retval=$? if [ "$retval" == 0 ] then set $(grep "$ligne" loghcp.22) IP=${8} mois=${1} jour=${2} heure=${3} printf "%s$ligne%s\t$IP%s\t$mois%s\t$jour%s\t$heure\n" >> "trace" fi done < fichier4.txt jp@MDK:~/tmpfs ssh$ sh 2_dieng.sh jp@MDK:~/tmpfs ssh$ cat trace Adresse MAC Adresse IP Mois Jour Heure 00:12:3f:bd:50:21 132.0.0.24 May 14 22:34:37 00:19:b9:2f:a5:27 132.0.0.24 May 14 22:44:37 00:12:3f:bd:50:21 132.0.0.24 May 14 22:34:37 00:19:b9:2f:a5:27 132.0.0.24 May 14 22:44:37 00:12:3f:bd:50:21 132.0.0.24 May 14 22:34:37 00:19:b9:2f:a5:27 132.0.0.24 May 14 22:44:37 jp@MDK:~/tmpfs ssh$;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
23 mai 2007 à 15:39
23 mai 2007 à 15:39
Affiche une dizaine de lignes de chaque fichiers qu'on puisse tester...
Voici le contenu du fichier logacs.20
May 14 20:00:36 192.168.2.1 CisACS_01_PassedAuth 1rgw406cg 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:00:38 192.168.2.1 CisACS_01_PassedAuth 1s0varqch 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:01:36 192.168.2.1 CisACS_01_PassedAuth 9353k6ci 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:01:38 192.168.2.1 CisACS_01_PassedAuth 9n4abqcj 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:02:36 192.168.2.1 CisACS_01_PassedAuth pqgqiuck 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:02:38 192.168.2.1 CisACS_01_PassedAuth qafxaecl 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:03:36 192.168.2.1 CisACS_01_PassedAuth 16dsdhicm 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:03:38 192.168.2.1 CisACS_01_PassedAuth 16xrk92cn 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:04:36 192.168.2.1 CisACS_01_PassedAuth 1n140g6co 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:04:38 192.168.2.1 CisACS_01_PassedAuth 1nl377qcp 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:05:36 192.168.2.1 CisACS_01_PassedAuth 4nd006cq 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:05:38 192.168.2.1 CisACS_01_PassedAuth 57c6rqcr 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:06:36 192.168.2.1 CisACS_01_PassedAuth laomyucs 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
logdhcp.20May 14 20:04:38 syslogserver dhcpd: Wrote 2 leases to leases file.
May 14 20:04:38 syslogserver dhcpd: DHCPREQUEST for 192.168.0.1 from 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:04:38 syslogserver dhcpd: DHCPACK on 192.168.0.1 to 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:04:41 syslogserver dhcpd: DHCPREQUEST for 192.168.0.2 from 00:22:b9:2f:a5:27 (toto8) via eth0
May 14 20:04:41 syslogserver dhcpd: DHCPACK on 192.168.0.2 to 00:22:b9:2f:a5:27 (toto8) via eth0
May 14 20:34:38 syslogserver dhcpd: DHCPREQUEST for 192.168.0.1 from 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:34:38 syslogserver dhcpd: DHCPACK on 192.168.0.1 to 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:34:41 syslogserver dhcpd: DHCPREQUEST for 192.168.0.2 from 00:22:b9:2f:a5:27 (toto8) via eth0
May 14 20:34:41 syslogserver dhcpd: DHCPACK on 192.168.0.2 to 00:22:b9:2f:a5:27 (toto8) via eth0
voici le script:
#!/bin/sh
# decoupage fichier acs
cat logacs.20 | grep ".*PassedAuth" | awk 'BEGIN{FS=","} {print $2 "," $4}' | awk 'BEGIN{FS=","} {n=split($1,tab,"="); print tab[n] "," $2;}' | awk 'BEGIN{FS=","} {n=split($2,tab,"="); print $1 "," tab[n];}' > fichier.txt
# transforme l'adresse MAC
sed -e 's/-/:/g' fichier.txt > fichier1.txt
while read ligne
do
#echo $ligne
mac=`echo $ligne | tr 'A-Z' 'a-z'`
echo "$mac" | sed 's/^/0/' >> fichier2.txt
done < fichier1.txt
#pour raffraichissement
#rm -rf fichier1.txt
# recuperation infos dans fichier logdhcp en fonction @MAC de ACS
printf "%sUSER%s\t\tMAC%s\t%sIP%s\t\tMOIS%s\tJOUR%s\tHEURE\n" > "trace"
while read ligne
do
grep "$ligne" loghcp.20 | grep "DHCPACK" > verif.txt
retval=$?
if [ "$retval" == 0 ]
then
set $(grep "$ligne" loghcp.20)
IP=${8}
mois=${1}
jour=${2}
heure=${3}
printf "%s$ligne%s\t$IP%s\t$mois%s\t$jour%s\t$heure\n" >> "trace"
fi
done < fichier2.txt
# fin
May 14 20:00:36 192.168.2.1 CisACS_01_PassedAuth 1rgw406cg 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:00:38 192.168.2.1 CisACS_01_PassedAuth 1s0varqch 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:01:36 192.168.2.1 CisACS_01_PassedAuth 9353k6ci 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:01:38 192.168.2.1 CisACS_01_PassedAuth 9n4abqcj 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:02:36 192.168.2.1 CisACS_01_PassedAuth pqgqiuck 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:02:38 192.168.2.1 CisACS_01_PassedAuth qafxaecl 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:03:36 192.168.2.1 CisACS_01_PassedAuth 16dsdhicm 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:03:38 192.168.2.1 CisACS_01_PassedAuth 16xrk92cn 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:04:36 192.168.2.1 CisACS_01_PassedAuth 1n140g6co 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:04:38 192.168.2.1 CisACS_01_PassedAuth 1nl377qcp 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:05:36 192.168.2.1 CisACS_01_PassedAuth 4nd006cq 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:05:38 192.168.2.1 CisACS_01_PassedAuth 57c6rqcr 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:06:36 192.168.2.1 CisACS_01_PassedAuth laomyucs 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
logdhcp.20May 14 20:04:38 syslogserver dhcpd: Wrote 2 leases to leases file.
May 14 20:04:38 syslogserver dhcpd: DHCPREQUEST for 192.168.0.1 from 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:04:38 syslogserver dhcpd: DHCPACK on 192.168.0.1 to 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:04:41 syslogserver dhcpd: DHCPREQUEST for 192.168.0.2 from 00:22:b9:2f:a5:27 (toto8) via eth0
May 14 20:04:41 syslogserver dhcpd: DHCPACK on 192.168.0.2 to 00:22:b9:2f:a5:27 (toto8) via eth0
May 14 20:34:38 syslogserver dhcpd: DHCPREQUEST for 192.168.0.1 from 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:34:38 syslogserver dhcpd: DHCPACK on 192.168.0.1 to 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:34:41 syslogserver dhcpd: DHCPREQUEST for 192.168.0.2 from 00:22:b9:2f:a5:27 (toto8) via eth0
May 14 20:34:41 syslogserver dhcpd: DHCPACK on 192.168.0.2 to 00:22:b9:2f:a5:27 (toto8) via eth0
voici le script:
#!/bin/sh
# decoupage fichier acs
cat logacs.20 | grep ".*PassedAuth" | awk 'BEGIN{FS=","} {print $2 "," $4}' | awk 'BEGIN{FS=","} {n=split($1,tab,"="); print tab[n] "," $2;}' | awk 'BEGIN{FS=","} {n=split($2,tab,"="); print $1 "," tab[n];}' > fichier.txt
# transforme l'adresse MAC
sed -e 's/-/:/g' fichier.txt > fichier1.txt
while read ligne
do
#echo $ligne
mac=`echo $ligne | tr 'A-Z' 'a-z'`
echo "$mac" | sed 's/^/0/' >> fichier2.txt
done < fichier1.txt
#pour raffraichissement
#rm -rf fichier1.txt
# recuperation infos dans fichier logdhcp en fonction @MAC de ACS
printf "%sUSER%s\t\tMAC%s\t%sIP%s\t\tMOIS%s\tJOUR%s\tHEURE\n" > "trace"
while read ligne
do
grep "$ligne" loghcp.20 | grep "DHCPACK" > verif.txt
retval=$?
if [ "$retval" == 0 ]
then
set $(grep "$ligne" loghcp.20)
IP=${8}
mois=${1}
jour=${2}
heure=${3}
printf "%s$ligne%s\t$IP%s\t$mois%s\t$jour%s\t$heure\n" >> "trace"
fi
done < fichier2.txt
# fin
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
23 mai 2007 à 17:04
23 mai 2007 à 17:04
Re-
Change ta ligne :
Rajoute aussi la variable :
;-))
Change ta ligne :
echo "$mac" | sed 's/^/0/' >> fichier2.txtpar :
echo "$mac" | sed 's/^.* /0/' >> fichier2.txtAttention à ne pas oublier l'espace derrière l'étoile (* ).
Rajoute aussi la variable :
name=${11}et change ton dernier "printf" par :
printf "%s${name//[!a-zA-Z]}\t%s$ligne%s\t$IP%s\t$mois%s\t$jour%s\t$heure\n" >> "trace"Faudra surement ajuster la sortie avec "printf".
;-))
bonjour jipicy,
je te remerçie ça marche.
C'est bien vrai que le savoir n'est bon que s'il est partagé!!!!!!
je te remerçie ça marche.
C'est bien vrai que le savoir n'est bon que s'il est partagé!!!!!!
Rebonjour Jipicy,
Je reviens pour poser une dernière question.
Le script marche , mais il ya un petit souci car il recopie chaque entrée de l'adresse MAC trouvé dans le fichier DHCP,sur tous les noms d'utilisateurs.
Donc pour résoudre ce problème, j'ai voulu prendre l'heure et l'adresse MAc du fichier ACS comme eléments de recherches. De ce fait, je vais comparer l'heure et l'adresse MAc des deux fichiers si c'est les même, je récupère l'adresse IP et je recopie tout dans le fichier trace.Sauf que l'heure que j vais récuperer dans le fichier ACS, ne contient que heure:minute, car les deux fichiers diffèrent à quelques secondes près.
sauf qu'il refuse de marcher, j'ai utilisé la commande grep.
Thanks for your help.
Je reviens pour poser une dernière question.
Le script marche , mais il ya un petit souci car il recopie chaque entrée de l'adresse MAC trouvé dans le fichier DHCP,sur tous les noms d'utilisateurs.
Donc pour résoudre ce problème, j'ai voulu prendre l'heure et l'adresse MAc du fichier ACS comme eléments de recherches. De ce fait, je vais comparer l'heure et l'adresse MAc des deux fichiers si c'est les même, je récupère l'adresse IP et je recopie tout dans le fichier trace.Sauf que l'heure que j vais récuperer dans le fichier ACS, ne contient que heure:minute, car les deux fichiers diffèrent à quelques secondes près.
sauf qu'il refuse de marcher, j'ai utilisé la commande grep.
Thanks for your help.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
18 juin 2007 à 13:29
18 juin 2007 à 13:29
Salut,
Affiche la commande exacte que tu utilises.
Pour une meilleure compréhension, affiche aussi un bout de chaque fichier et le résultat escompté ;-))
Affiche la commande exacte que tu utilises.
Pour une meilleure compréhension, affiche aussi un bout de chaque fichier et le résultat escompté ;-))
more logacs.20
May 14 20:00:36 192.168.2.1 CisACS_01_PassedAuth 1rgw406cg 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:00:38 192.168.2.1 CisACS_01_PassedAuth 1s0varqch 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:01:36 192.168.2.1 CisACS_01_PassedAuth 9353k6ci 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:01:38 192.168.2.1 CisACS_01_PassedAuth 9n4abqcj 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:02:36 192.168.2.1 CisACS_01_PassedAuth pqgqiuck 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:02:38 192.168.2.1 CisACS_01_PassedAuth qafxaecl 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:03:36 192.168.2.1 CisACS_01_PassedAuth 16dsdhicm 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:03:38 192.168.2.1 CisACS_01_PassedAuth 16xrk92cn 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:04:36 192.168.2.1 CisACS_01_PassedAuth 1n140g6co 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:04:38 192.168.2.1 CisACS_01_PassedAuth 1nl377qcp 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:05:36 192.168.2.1 CisACS_01_PassedAuth 4nd006cq 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:05:38 192.168.2.1 CisACS_01_PassedAuth 57c6rqcr 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:06:36 192.168.2.1 CisACS_01_PassedAuth laomyucs 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
more logdhcp.20
ogdhcp.20May 14 20:04:38 syslogserver dhcpd: Wrote 2 leases to leases file.
May 14 20:04:38 syslogserver dhcpd: DHCPREQUEST for 192.168.0.1 from 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:04:38 syslogserver dhcpd: DHCPACK on 192.168.0.1 to 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:04:41 syslogserver dhcpd: DHCPREQUEST for 192.168.0.2 from 00:22:b9:2f:a5:27 (toto8) via eth0
May 14 20:04:41 syslogserver dhcpd: DHCPACK on 192.168.0.2 to 00:22:b9:2f:a5:27 (toto8) via eth0
May 14 20:34:38 syslogserver dhcpd: DHCPREQUEST for 192.168.0.1 from 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:34:38 syslogserver dhcpd: DHCPACK on 192.168.0.1 to 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:34:41 syslogserver dhcpd: DHCPREQUEST for 192.168.0.2 from 00:22:b9:2f:a5:27 (toto8) via eth0
May 14 20:34:41 syslogserver dhcpd: DHCPACK on 192.168.0.2 to 00:22:b9:2f:a5:27 (toto8) via eth0
script:
tempo_file1="/tmp/fichier.txt"
tempo_file2="/tmp/verif.txt"
perm_file="trace"
dir="/var/log/"
cat logacs.20 | grep ".*PassedAuth" | awk 'BEGIN{FS=","} {print $2 "," $4}' | awk 'BEGIN{FS=","} {n=split($1,tab,"="); print tab[n] "," $2;}' | awk 'BEGIN{FS=","} {n=split($2,tab,"="); print tab[n] " " $1;}' | tr 'A-Z' 'a-z' | sed -e 's/-/:/g;s/^ /0/' > ${tempo_file1}
# recuperation infos dans fichier logdhcp en fonction @MAC de ACS
echo -e "USER\t\t\tMAC\t\t\tIP\t\tANNEE\tMOIS\tJOUR\tHEURE" > "${dir}/${perm_file}"
while read ligne
do
set $ligne
mac=${1}
user=${2}
grep ${mac} logdhcp.20 | grep "DHCPACK" >> ${tempo_file2}
# on recherche à partir de l'@ MAC( fichier tempo-file) dans le fichier DHCP, tous les lignes qui ont DHCPACK
# tempo_file2 ne contient que les lignes de logdhcp qui sont des acknowledges
while read autre_ligne
do
set $autre_ligne
ip=${8}
mois=${1}
jour=${2}
heure=${3}
echo -e "$user\t$mac\t$ip\t$year\t$mois\t$jour\t$heure" >> "${dir}/${perm_file}"
done < ${tempo_file2}
done < ${tempo_file1}
sauf que j'ai ça comme résultat:
USER MAC IP ANNEE MOIS JOUR HEURE
cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 May 14 20:04:38
cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 May 14 20:04:41
cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 MAy 14 20:34:48
cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 MAy 14 20:34:41
cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 May 14 20:04:38
cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 May 14 20:04:41
cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 MAy 14 20:34:48
cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 MAy 14 20:34:41
au lieu:
USER MAC IP ANNEE MOIS JOUR HEURE
cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 May 14 20:04:38
cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 May 14 20:04:41
cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 May 14 20:34:38
cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 May 14 20:34:41
j'ai décidé de récuperer aussi l'heure du fichier acs et de l'ajouter comme paramètre de recherche de l'adresse IP en plus de l'adresse MAC.
cat logacs.20 | grep ".*PassedAuth" | awk 'BEGIN{FS=","} {print $1 "," $2 "," $4}' | awk 'BEGIN{FS=","}{m=split($1,tab," ");print tab[3] "," $2 "," $3;}' | sed -e 's/(.*\)/\1:\2/' #| awk 'BEGIN{FS=","} {n=split($2,tab,"="); print tab[n] "," $1 "," $3;}' | awk 'BEGIN{FS=","} {n=split($3,tab,"="); print tab[n] " " $2 " " $1;}' | tr 'A-Z' 'a-z' | sed -e 's/-/:/g;s/^ /0/' > "$tempo_file1"
Thanks for your help.
May 14 20:00:36 192.168.2.1 CisACS_01_PassedAuth 1rgw406cg 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:00:38 192.168.2.1 CisACS_01_PassedAuth 1s0varqch 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:01:36 192.168.2.1 CisACS_01_PassedAuth 9353k6ci 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:01:38 192.168.2.1 CisACS_01_PassedAuth 9n4abqcj 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:02:36 192.168.2.1 CisACS_01_PassedAuth pqgqiuck 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:02:38 192.168.2.1 CisACS_01_PassedAuth qafxaecl 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:03:36 192.168.2.1 CisACS_01_PassedAuth 16dsdhicm 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:03:38 192.168.2.1 CisACS_01_PassedAuth 16xrk92cn 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:04:36 192.168.2.1 CisACS_01_PassedAuth 1n140g6co 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:04:38 192.168.2.1 CisACS_01_PassedAuth 1nl377qcp 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:05:36 192.168.2.1 CisACS_01_PassedAuth 4nd006cq 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
May 14 20:05:38 192.168.2.1 CisACS_01_PassedAuth 57c6rqcr 1 0 Message-Type=Authen OK,User-Name=mathieu@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-B9-2F-A5-27,NAS-Port=6
May 14 20:06:36 192.168.2.1 CisACS_01_PassedAuth laomyucs 1 0 Message-Type=Authen OK,User-Name=nadieng@test.lan,NAS-IP-Address=192.168.1.3,Caller-ID= 0-22-3F-BD-50-21,NAS-Port=9
more logdhcp.20
ogdhcp.20May 14 20:04:38 syslogserver dhcpd: Wrote 2 leases to leases file.
May 14 20:04:38 syslogserver dhcpd: DHCPREQUEST for 192.168.0.1 from 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:04:38 syslogserver dhcpd: DHCPACK on 192.168.0.1 to 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:04:41 syslogserver dhcpd: DHCPREQUEST for 192.168.0.2 from 00:22:b9:2f:a5:27 (toto8) via eth0
May 14 20:04:41 syslogserver dhcpd: DHCPACK on 192.168.0.2 to 00:22:b9:2f:a5:27 (toto8) via eth0
May 14 20:34:38 syslogserver dhcpd: DHCPREQUEST for 192.168.0.1 from 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:34:38 syslogserver dhcpd: DHCPACK on 192.168.0.1 to 00:22:3f:bd:50:21 (Client_ACS) via eth0
May 14 20:34:41 syslogserver dhcpd: DHCPREQUEST for 192.168.0.2 from 00:22:b9:2f:a5:27 (toto8) via eth0
May 14 20:34:41 syslogserver dhcpd: DHCPACK on 192.168.0.2 to 00:22:b9:2f:a5:27 (toto8) via eth0
script:
tempo_file1="/tmp/fichier.txt"
tempo_file2="/tmp/verif.txt"
perm_file="trace"
dir="/var/log/"
cat logacs.20 | grep ".*PassedAuth" | awk 'BEGIN{FS=","} {print $2 "," $4}' | awk 'BEGIN{FS=","} {n=split($1,tab,"="); print tab[n] "," $2;}' | awk 'BEGIN{FS=","} {n=split($2,tab,"="); print tab[n] " " $1;}' | tr 'A-Z' 'a-z' | sed -e 's/-/:/g;s/^ /0/' > ${tempo_file1}
# recuperation infos dans fichier logdhcp en fonction @MAC de ACS
echo -e "USER\t\t\tMAC\t\t\tIP\t\tANNEE\tMOIS\tJOUR\tHEURE" > "${dir}/${perm_file}"
while read ligne
do
set $ligne
mac=${1}
user=${2}
grep ${mac} logdhcp.20 | grep "DHCPACK" >> ${tempo_file2}
# on recherche à partir de l'@ MAC( fichier tempo-file) dans le fichier DHCP, tous les lignes qui ont DHCPACK
# tempo_file2 ne contient que les lignes de logdhcp qui sont des acknowledges
while read autre_ligne
do
set $autre_ligne
ip=${8}
mois=${1}
jour=${2}
heure=${3}
echo -e "$user\t$mac\t$ip\t$year\t$mois\t$jour\t$heure" >> "${dir}/${perm_file}"
done < ${tempo_file2}
done < ${tempo_file1}
sauf que j'ai ça comme résultat:
USER MAC IP ANNEE MOIS JOUR HEURE
cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 May 14 20:04:38
cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 May 14 20:04:41
cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 MAy 14 20:34:48
cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 MAy 14 20:34:41
cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 May 14 20:04:38
cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 May 14 20:04:41
cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 MAy 14 20:34:48
cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 MAy 14 20:34:41
au lieu:
USER MAC IP ANNEE MOIS JOUR HEURE
cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 May 14 20:04:38
cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 May 14 20:04:41
cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 May 14 20:34:38
cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 May 14 20:34:41
j'ai décidé de récuperer aussi l'heure du fichier acs et de l'ajouter comme paramètre de recherche de l'adresse IP en plus de l'adresse MAC.
cat logacs.20 | grep ".*PassedAuth" | awk 'BEGIN{FS=","} {print $1 "," $2 "," $4}' | awk 'BEGIN{FS=","}{m=split($1,tab," ");print tab[3] "," $2 "," $3;}' | sed -e 's/(.*\)/\1:\2/' #| awk 'BEGIN{FS=","} {n=split($2,tab,"="); print tab[n] "," $1 "," $3;}' | awk 'BEGIN{FS=","} {n=split($3,tab,"="); print tab[n] " " $2 " " $1;}' | tr 'A-Z' 'a-z' | sed -e 's/-/:/g;s/^ /0/' > "$tempo_file1"
Thanks for your help.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
18 juin 2007 à 15:48
18 juin 2007 à 15:48
Re-
Tiens avec ça tu devrais arriver à tes fins :
Tiens avec ça tu devrais arriver à tes fins :
[jp@MDK tmpfs]$ cat plop USER MAC IP ANNEE MOIS JOUR HEURE cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 May 14 20:04:38 cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 May 14 20:04:41 cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 MAy 14 20:34:48 cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 MAy 14 20:34:41 cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 May 14 20:04:38 cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 May 14 20:04:41 cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 MAy 14 20:34:48 cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 MAy 14 20:34:41 [jp@MDK tmpfs]$ sort -r plop | uniq -6 -w5 USER MAC IP ANNEE MOIS JOUR HEURE cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 MAy 14 20:34:48 cnestestnadieng 00:22:3f:bd:50:21 192.168.0.1 2007 May 14 20:04:41 cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 MAy 14 20:34:48 cnestestmathieu 00:22:b9:2f:a5:27 192.168.0.2 2007 May 14 20:04:41 [jp@MDK tmpfs]$man sort et man uniq sont tes nouveaux amis ;-))
si si j'avais utilisé cette commande.
sauf que non parceque c'est nadieng c'est connecté à 20:04:48 puis mathieu à 20:04:41 ensuite nadieng 20:34:48 et enfin mathieu à 20:04:41
Le problèce c'est que le grep ne les prends pas dans l'ordre.
Thanks for your help.
sauf que non parceque c'est nadieng c'est connecté à 20:04:48 puis mathieu à 20:04:41 ensuite nadieng 20:34:48 et enfin mathieu à 20:04:41
Le problèce c'est que le grep ne les prends pas dans l'ordre.
Thanks for your help.