Bonjour;
Je suis sous RHEL 6.1.
J'aimerais savoir comment faire pour ne créer qu'un seul fichier de sortie qui me permettrait d'obtenir le top10 des uploaders (via leur login $1 et leur debit d'upload $14 des access_logs) pour tous les proxy-http.
Voici mon code SH :
Avec ce code, j'obtiens un top10 pour chaque fichier de logs pour chaque proxy. J'aimerais un seul fichier top10 pour tous les proxys.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 for log_a_traite in `find /root/scripts/PROXY -name "access_logs*.s" -type f -size +0k | sort | xargs ls -1` do #echo "log_a_traite="$log_a_traite basename_log_traite=`basename $log_a_traite` # echo "basename_log_traite="$basename_log_traite nom_proxy=`echo $log_a_traite | cut -d/ -f5` awk '{ # On agrege par login les request size # if ($1 != "#" ) pour eviter ligne de commentaires des logs tab_top10_upload[$8]+=$14 } END { # On trie par upload et on affiche le resultat des sommes des request size for (x in tab_top10_upload) { print x" "tab_top10_upload[x] | "sort -n -r" } }' $log_a_traite > /root/scripts/tmp/top10upload_${nom_proxy}_${basename_log_traite}.txt done
En fait il faudrait que j'arrive à initialiser un tableau "total" (avec la somme des debits d'upload par user) à l'exterieur de AWK mais tout de meme dans la boucle sur les fichiers de log... OU alors fusionner tous les fichiers à plats /tmp/top10upload_${nom_proxy}_${basename_log_traite}.txt (en faisant la somme de la deuxieme colonne par rapport à la premiere [login]) ...
Merci de votre aide
Partager