#1 Le 08/04/2020, à 12:30
- jiice
Commande CUT,Sed,AWK,... pour exploitation LOG
Bonjour à tous,
Dans un premier temps je remercie par avance les personnes qui pourront m'aider.
J'explique mon problème.
Dans un fichier de log j'aimerais récupérer certains des informations jusqu'à un certains champs.
J'ai donc pensé à la commande CUT.
cependant le champs "src" qui contient une adresse IP est remplacé dans certaines lignes par le champs "packets" qui lui contient plusieurs adresses IPs (nombres pouvant être différents à chaque ligne)
J'ai remarqué qu'il y avait un champ "proto:" qui se trouvait à la suite des champs "src" ou "packets" cependant je n'ai jamais reussi à couper la fin de la ligne et à avoir les bonnes informations.
Pour aider je mets la ligne avec le champs "src" et celle avec le champs "packets"
Xxx 00 00:00:00 100.0.0.. Firewall: XXAaaXXX 00:00:00 5 N/A 0000 drop 100.0.0.0 > bond4.5 LogId: 0; ContextNum: <max_null>; OriginSicName: CN=ew1,O=console-fw..bnsx8h; OriginSicName: CN=ew1,O=console-fw..bnsx8h; HighLevelLogKey: 100000000; inzone: External; outzone: Internal; service_id: tcp_81;[b] src: 1.1.1.1;[/b] dst: 100.0.0.0; [b]proto: tcp;[/b] UP_match_table: TABLE_START; ROW_START: 0; match_id: 0000; layer_uuid: xxxxxx-xxxxxxxxx-xxxx-xxxxxx; layer_name: new_inter_ok Security; rule_uid: exxxx-xxxx-xxxx-xxxx-xxx-xxx; rule_name: ; action: 0; parent_rule: 0; ROW_END: 0; UP_match_table: TABLE_END; ProductName: test -1; svc: tcp_00; sport_svc: 00000; ProductFamily: test;
Dans cette ligne j'aimerai récupérer l'ensemble des champs avec le champs "proto:tcp" la suite ne m'intéressant pas
Xxxr 00 HH:MM:SS 100.0.0.0 Firewall: 00Xxx0000 HH:MM/SS 5 N/A 2400 drop 100.0.0.0 < N/A LogId: 0; ContextNum: <max_null>; OriginSicName: CN=ew1,O=console-fw..bnsx8h; OriginSicName: CN=ew1,O=console-fw..bnsx8h; HighLevelLogKey: 11111111111111111; drop reason: matched optimized drop; packet amount: 5; packets: <65.0.0.0.0,100.0.0.0,40022,6;> 65.0.0.0.0,100.0.0.0,40022,6;> <65.0.0.0.0,100.0.0.0,40022,6> ; proto: tcp; UP_match_table: TABLE_START; ROW_START: 0; match_id: 000; layer_uuid: 00000000000000; layer_name: new_inter_ok Security; rule_uid: 0000000000 rule_name: ; action: 0; parent_rule: 0; ROW_END: 0; UP_match_table: TABLE_END; ProductName:test ProductFamily: test
Dans cette seconde ligne j'aimerai récupérer l'ensemble des champs avec le champs "proto:tcp" la suite ne m'intéressant, sauf que là j'ai plusieurs IP dans le champs "packets"
sachant que mon but au final c'est de mettre toutes les lignes avec "src" et "packets" dans le même fichier des les classer par heures et surtout de pouvoir calculer les adresses IPs en les comptants
encore merci de vos lumières
Hors ligne
#2 Le 08/04/2020, à 12:35
- diesel
Re : Commande CUT,Sed,AWK,... pour exploitation LOG
J'ai pô tout compris.
Pour tes deux lignes d'exemple, tu pourrais nous fournir ce que tu veux comme résultat ?
Amicalement.
Jean-Marie
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#3 Le 08/04/2020, à 12:51
- jiice
Re : Commande CUT,Sed,AWK,... pour exploitation LOG
Ce n'est en effet pas très clair
Dans mon fichier de log j'aimerai récupérer une partie des champs
Au final j'aimerai avoir
xx 00 00:00:00 100.0.0.. Firewall: XXAaaXXX 00:00:00 5 N/A 0000 drop 100.0.0.0 > bond4.5 LogId: 0; ContextNum: <max_null>; OriginSicName: CN=ew1,O=console-fw..bnsx8h; OriginSicName: CN=ew1,O=console-fw..bnsx8h; HighLevelLogKey: 100000000; inzone: External; outzone: Internal; service_id: tcp_81;[b] src: 1.1.1.1;[/b] dst: 100.0.0.0; [b]proto: tcp;[/b];
au lieu de ça
xx 00 00:00:00 100.0.0.. Firewall: XXAaaXXX 00:00:00 5 N/A 0000 drop 100.0.0.0 > bond4.5 LogId: 0; ContextNum: <max_null>; OriginSicName: CN=ew1,O=console-fw..bnsx8h; OriginSicName: CN=ew1,O=console-fw..bnsx8h; HighLevelLogKey: 100000000; inzone: External; outzone: Internal; service_id: tcp_81;[b] src: 1.1.1.1;[/b] dst: 100.0.0.0; [b]proto: tcp;[/b] UP_match_table: TABLE_START; ROW_START: 0; match_id: 0000; layer_uuid: xxxxxx-xxxxxxxxx-xxxx-xxxxxx; layer_name: new_inter_ok Security; rule_uid: exxxx-xxxx-xxxx-xxxx-xxx-xxx; rule_name: ; action: 0; parent_rule: 0; ROW_END: 0; UP_match_table: TABLE_END; ProductName: test -1; svc: tcp_00; sport_svc: 00000; ProductFamily: test;
Je viens de me rendre compte que j'aurai les informations des champs PACKETS ou SRC
merci d'avance
Hors ligne
#4 Le 08/04/2020, à 13:01
- nany
Re : Commande CUT,Sed,AWK,... pour exploitation LOG
Bonjour,
grep -oE ".*proto: [^;]+;"
?
Dernière modification par nany (Le 08/04/2020, à 13:03)
Hors ligne
#5 Le 08/04/2020, à 13:07
- diesel
Re : Commande CUT,Sed,AWK,... pour exploitation LOG
Gratté par Nany
Jean-Marie
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#6 Le 08/04/2020, à 13:53
- jiice
Re : Commande CUT,Sed,AWK,... pour exploitation LOG
Super Merci
par contre je ne comprend pas trop ce que fais -o
encore mille merci
Hors ligne
#7 Le 08/04/2020, à 14:48
- diesel
Re : Commande CUT,Sed,AWK,... pour exploitation LOG
man grep
" -o, --only-matching
N'afficher que les parties (non vides) correspondantes des
lignes sélectionnées, chaque partie étant affichée sur une ligne
séparée."
Amicalement.
Jean-Marie
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#8 Le 08/04/2020, à 15:34
- kamaris
Re : Commande CUT,Sed,AWK,... pour exploitation LOG
Ce serait pas plutôt l'espace le bon délimiteur ? (pour avoir la balise fermante, quand il y en a une)
grep -oE ".*proto: [^ ]+"
Après il reste ton tri selon la date : si c'est le champ 3, et qu'il est bien au format HH:MM:SS comme il semble, il suffira de faire
sort -k3
Quant à ce que tu veux faire de tes ips, j'ai pas compris
Hors ligne