From 052b2f76576cf65ae040b75a3b70d65878ca4324 Mon Sep 17 00:00:00 2001 From: pdiogoantunes Date: Thu, 13 Apr 2017 11:27:18 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20autre=20script=20compare=20requ=C3=AAte?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TipsShell.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/TipsShell.md b/TipsShell.md index 18ca8437..5ad8e6c2 100644 --- a/TipsShell.md +++ b/TipsShell.md @@ -266,6 +266,22 @@ SEUIL=20; i=1; lastline=; cat access.log | sed 's/.*\] \(.*\)\" [0-9]\{3\}.*$/\1 Si on veut les adresses IPs, ou simplement trier le access.log avant l'analyse, il faut modifier après le : cat acccess.log | +Et si l'on considère les mots comme une seule différence (et non par caractères), on peut descendre le seuil : + +~~~{.bash} +SEUIL=3; i=1; lastline=; cat /var/log/nginx/access.log | sed 's/.*\] \(.*\)\" [0-9]\{3\}.*$/\1\"/' | \ +(while read line; do diff=$(cmp -bl <(echo "$lastline") <(echo "$line") 2>/dev/null | awk '{print $1}' | \ + (compt=0; lastnumber=0; while read number; do (( lastnumber+1 != number)) && ((compt=compt+1)); lastnumber=$number; done; echo $compt)); \ +(( diff < SEUIL )) && { i=$((i+1)); } || { echo "$i $line"; i=1; }; lastline="$line"; done) +~~~ + +C'est à dire que entre 2 requêtes du type : + +- /page.do?pseudo=Example&pass=0322 +- /page.do?pseudo=Mail&pass=3892 + +il n'y a que 2 différences : le «pseudo», et le «pass». + # Process ## Un processus par rapport à une socket/port