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 :
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
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.

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