linux:scripts_awk:start
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
linux:scripts_awk:start [13/03/2010 15:44] – rmqs locales daniel | linux:scripts_awk:start [17/10/2019 11:11] (Version actuelle) – [Lister les IP et le nb d'accès d'un log www] daniel | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Scripts awk ====== | ====== Scripts awk ====== | ||
- | + | Docs | |
- | Une doc sur awk : http:// | + | |
- | + | * https://www.tutorialspoint.com/awk/index.htm | |
- | Quelques règles et bout de scripts (cf http://cli.asyd.net/home/filtres/awk) | + | * [FR] http:// |
Attention aux locales !!! (merci à Christophe Martin de la liste shell@asyd.net), | Attention aux locales !!! (merci à Christophe Martin de la liste shell@asyd.net), | ||
Ligne 30: | Ligne 30: | ||
===== Syntaxe ===== | ===== Syntaxe ===== | ||
+ | |||
==== Boucle for ==== | ==== Boucle for ==== | ||
<code awk> | <code awk> | ||
Ligne 38: | Ligne 39: | ||
print " | print " | ||
}' | }' | ||
+ | </ | ||
+ | |||
+ | ==== Lister les IP et le nb d' | ||
+ | <code awk> | ||
+ | awk ' | ||
+ | </ | ||
+ | |||
+ | Ou si on veut le reverse | ||
+ | <code awk> | ||
+ | awk ' | ||
+ | </ | ||
+ | |||
+ | ==== Compter les hits et afficher les heures qui dépassent un nb de hits ==== | ||
+ | |||
+ | <code awk> | ||
+ | awk -F : ' | ||
</ | </ | ||
===== Exemples ===== | ===== Exemples ===== | ||
+ | |||
==== Découper un fichier ==== | ==== Découper un fichier ==== | ||
Ligne 51: | Ligne 69: | ||
</ | </ | ||
+ | |||
+ | |||
+ | ==== Monitoring de processus ==== | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | NBMES=10 | ||
+ | INTER=0.5 | ||
+ | SLEEP_DELAY=1 | ||
+ | PROCESS=java | ||
+ | |||
+ | function usage() { | ||
+ | echo " | ||
+ | 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; | ||
+ | } | ||
+ | | ||
+ | while getopts " | ||
+ | do | ||
+ | case $OPTION in | ||
+ | n ) NBMES=$OPTARG;; | ||
+ | i ) INTER=$OPTARG;; | ||
+ | s ) SLEEP_DELAY=$OPTARG;; | ||
+ | p ) PROCESS=$OPTARG;; | ||
+ | h ) usage;; | ||
+ | esac | ||
+ | done | ||
+ | |||
+ | PID='' | ||
+ | while [ " | ||
+ | do | ||
+ | sleep $SLEEP_DELAY | ||
+ | PID=$(pidof $PROCESS|awk ' | ||
+ | while [ " | ||
+ | do | ||
+ | echo " | ||
+ | top -b -n $NBMES -d $INTER -p $PID|env LANGUAGE=C LANG=C awk -v pid=$PID ' | ||
+ | BEGIN { | ||
+ | minC=100; maxC=0; moyC=0; minM=100; maxM=0; moyM=0.0; | ||
+ | } | ||
+ | $0 ~ pid { | ||
+ | i++; | ||
+ | if ($9 <minC) {minC=$9}; | ||
+ | if ($9 > maxC) {maxC=$9}; | ||
+ | moyC += $9; | ||
+ | if ($10 <minM) {minM=$10}; | ||
+ | if ($10 > maxM) {maxM=$10}; | ||
+ | moyM += $10; | ||
+ | print "CPU: " $9 "% \tRAM: " $10 " | ||
+ | } | ||
+ | END { | ||
+ | if (i>0) { | ||
+ | print "Sur " i " itérations"; | ||
+ | print "CPU => min: " minC " | ||
+ | print "RAM => min: " minM " | ||
+ | } | ||
+ | else { | ||
+ | print " | ||
+ | } | ||
+ | }' | ||
+ | PID=$(pidof java|awk ' | ||
+ | done | ||
+ | echo "Pas de process $PROCESS en cours, on attend ('Ctrl + c' pour arrêter)" | ||
+ | done | ||
+ | </ |
linux/scripts_awk/start.1268491471.txt.gz · Dernière modification : 13/03/2010 15:44 de daniel