Salut,
Super cette commande, par contre il me sort des
2010-10-01 06:43:30 000
pourquoi ton script donne l'info qu'il y a 0 com simultanées?
Salut,
Super cette commande, par contre il me sort des
2010-10-01 06:43:30 000
pourquoi ton script donne l'info qu'il y a 0 com simultanées?
tu es bien dans le répertoire ou est Master.csv (ie, /var/log/asterisl/cdr-csv) ?
sinon, coupe la commande en 2, le premier awk d'abord, et vois ce qui sort
pardon je me suis mal exprimé,
j'ai bien des lignes avec un nombre d'appel simultané > 0 mais je ne comprend pas pourquoi il me sort certaines lignes a 0
Ok - j'y suis !
Ce script te montre à chaque changement du nombre d'appel, le nombre d'appel et la date... par exemple:
tu vois qu'à 13:16:54, il y a eu un appel et que donc, 1 simultané, puis 2, puis 3, puis à 13:23:31, raccroché, on retombe à 2, etc...Code:2010-10-20 13:11:54 000 2010-10-20 13:16:54 001 2010-10-20 13:22:36 002 2010-10-20 13:23:15 003 2010-10-20 13:23:31 002 2010-10-20 13:24:51 001 2010-10-20 13:27:04 002 2010-10-20 13:27:09 001 2010-10-20 13:29:10 000 2010-10-20 13:30:38 001
Tu sais donc précisément ta charge, et à quelle heure.
Alternativement, tu peux faire
grep "2010-10-19" /var/log/asterisk/cdr-csv/Master.csv | awk 'BEGIN{FS=",\""} /ANSWERED/{split($11, a, "\""); split($12, b, "\"");printf ("%s,1\n%s,-1\n", a[1],b[1]); }' | sort | awk -F , '{cpt=cpt+$2; printf ("%s %01d\n", $1, cpt);}' | awk 'BEGIN {pdur=0;}{ if (pdur==0){pdur=substr($2,0,2)*60*60+substr($2,4,2) *60+substr($2,7,2); pc=$3; mcc=0;}else{ dur=substr($2,0,2)*60*60+substr($2,4,2)*60+substr( $2,7,2); d[pc] = d[pc]+dur-pdur; nc[pc]++; pdur=dur; pc=$3;} } END {for (i in d) { if (i>0) printf ("%d: Calls=%d, Min= %6.2f\n",i, nc[i],d[i]/60); }}'`
(j'avoue, j'aime bien awk... remplacer dans le premier grep la date du jour)
qui va te produire par nombre d'appels simultanés, le temps passé, et le nombre d'appels à ce moment:
1: Calls=68, Min= 97.50
2: Calls=41, Min= 44.63
3: Calls=10, Min= 5.20
il y a eu 68 moments avec 1 appel simultané, ca a duré 97 min
il y a eu 41 moments avec 2 appel simultané, ca a duré 44 min
il y a eu 10 moments avec 3 appel simultané, ca a duré 10 min
donc, je vois que ce serveur tourne majoritairement avec 1 appel simultané, petites pointes à 3
Ok j'ai compris.
je pense que je vais te donner le titre de "Mister Awk" sur le forum
merci pour les infos.
Merci pour ces commandes, mais n'étant pas très à l'aise avec awk, je recherche une méthode utilisant des requêtes mysql.
A part faire une usine à gaz, je ne suis pas arrivé au but escompté, donc je fait appel à vous.
ahhh.. si tu savais.... tout ce qu'on peut faire avec Awk !!! c'est vraiment de la balle, avec un p'tit grep, le tout arrosé de sed !!!
mais bon... mysql est pas mal non plus, tu obtiens la même chose (ie, même résultat cf plus haut sur les explications) avec ca:
SET @cpt = 0;
SELECT evttime, @cpt := @cpt + typevt AS totcalls
FROM (SELECT starttime AS evttime, 1 AS typevt FROM cc_call
UNION ALL
SELECT stoptime AS evttime, -1 AS typevt
FROM cc_call
ORDER BY 1 ASC, 2 DESC) allcalls
WHERE evttime > '2010-11-01';
Je l'exécute avec Toad, mais ca marche aussi depuis mysql en commande ligne (attention, il y a deux lignes, le SET puis le SELECT)
Ca marche avec une bdd A2BILLING, il suffit de remplacer starttime, stoptime et cc_call avec les équivalents dans ta base
Enjoy....
Découvrez Wazo sous licence GPLv3 et accessible pour tous : http://www.wazo.community
Blog Wazo : http://blog.wazo.community
Wazo est un fork de XiVO.
Suivez moi sur Twitter !
y'a des fois j'abuse..... c'est vrai... en plus, je suis sur qu'en perl, ca se fait 3 fois plus vite.... dans une prochaine vie ;-)
Sécurisez votre asterisk, lisez ce post du forum: http://www.asterisk-france.org/showt...-recapitulatif et votre patton: http://www.asterisk-france.org/threa...tage-via-tiers - comprenez le nat : http://www.asterisk-france.org/threa...dio-pas-de-son