Outils pour utilisateurs

Outils du site


linux:scripts_awk:start

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
linux:scripts_awk:start [16/03/2010 16:11]
daniel correction p'tit bug
linux:scripts_awk:start [17/10/2019 11:11] (Version actuelle)
daniel [Lister les IP et le nb d'accès d'un log www]
Ligne 1: Ligne 1:
 ====== Scripts awk ====== ====== Scripts awk ======
- +Docs 
-Une doc sur awk : http://people.cs.uu.nl/piet/docs/nawk/nawk_toc.html +  http://people.cs.uu.nl/piet/docs/nawk/nawk_toc.html 
- +  * https://www.tutorialspoint.com/awk/index.htm 
-Quelques règles et bout de scripts (cf http://cli.asyd.net/home/filtres/awk)+  * [FR] http://www.shellunix.com/awk.html
  
 Attention aux locales !!! (merci à Christophe Martin de la liste shell@asyd.net), autant pour le séparateur décimal (la virgule en fr) que les règles de collation min/maj : Attention aux locales !!! (merci à Christophe Martin de la liste shell@asyd.net), autant pour le séparateur décimal (la virgule en fr) que les règles de collation min/maj :
Ligne 30: Ligne 30:
  
 ===== Syntaxe ===== ===== Syntaxe =====
 +
 ==== Boucle for ==== ==== Boucle for ====
 <code awk> <code awk>
Ligne 38: Ligne 39:
   print "\""fich"\";"$6";"$7";"$5   print "\""fich"\";"$6";"$7";"$5
 }' }'
 +</code>
 +
 +==== Lister les IP et le nb d'accès d'un log www ====
 +<code awk>
 +awk '{nb[$1]++} END {for (ip in nb) print ip "\t" nb[ip]}' < access.log
 +</code>
 +
 +Ou si on veut le reverse
 +<code awk>
 +awk '{nb[$1]++} END {for (ip in nb) {system("/usr/bin/host " ip "|cut -d '"' '"' -f 5;print "\t" ip "\t" nb[ip]}}' < access.log
 +</code>
 +
 +==== Compter les hits et afficher les heures qui dépassent un nb de hits ====
 +
 +<code awk>
 +awk -F : '{nb[$2][$3]++} END {for (h in nb) {for (m in nb[h]) if (nb[h][m] > 9999) printf("%s:%s %d\n", h, m, nb[h][m])}}' < access.log > access.highfreq.log
 </code> </code>
 ===== Exemples ===== ===== Exemples =====
Ligne 51: Ligne 68:
   {if (fout!=0) { print $0 > fout;new=0}}' < tous_les_virtualhosts_confondus.conf   {if (fout!=0) { print $0 > fout;new=0}}' < tous_les_virtualhosts_confondus.conf
 </code> </code>
 +
  
  
Ligne 64: Ligne 82:
   echo "usage: $(basename $0) -n <nb de mesures> -i <intervalle entre deux mesures> -s <duree d'attente avant de retester pour relancer une série> -p <process à surveiller>"   echo "usage: $(basename $0) -n <nb de mesures> -i <intervalle entre deux mesures> -s <duree d'attente avant de retester pour relancer une série> -p <process à surveiller>"
   echo "Tous les arguments sont facultatifs";   echo "Tous les arguments sont facultatifs";
 +  echo "Par défaut on a $NBMES mesures, toutes les ${INTER}s avec un délai de ${SLEEP_DELAY}s entre deux tests sur le process $PROCESS"
   exit;   exit;
 } }
linux/scripts_awk/start.1268752302.txt.gz · Dernière modification: 16/03/2010 16:11 de daniel