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