Merci pour le conseil. Je suis decu par gnuplot, j'ai fait un script perl:
#!/usr/bin/perl
sub usage {
print STDERR "\n\tUsage: norm.pl ping_log_file > output_file\n";
}
$numArgs = $#ARGV + 1;
if ($numArgs != 1) {
&usage;
exit 1;
}
$logFile = $ARGV[0];
open (LOGFILE,"$logFile") || die " Error opening log file $logFile.\n";
while(<LOGFILE>) {
chomp;
s/\s+/ /go;
($date, $lost, $duration) = /^(\S+) (\S+) (\S+)/o;
$numHits{$duration}++;
}
close (LOGFILE);
foreach $key (sort keys %numHits) {
print "$key \t $numHits{$key}\n";
}
le resultat est tres interressant vers le dslam, la distribution est en
forme de peigne.
http://pokie.dyndns.org/serveur.php?sub=grf
Stephane
Le Jeu 9 novembre 2006 23:06, Michel Karatchentzeff a écrit :
> Le Thu, 9 Nov 2006, Stephane DRIUSSI a écrit :
>
>> mes datas sont dans un fichier texte. comment les donner a gnuplot pour
>> qu'il
>> en trace la distribution ?
>>
>> je voudrais faire un truc du style:
>>
>> plot [x="/var/cache/via686/freebox" using 3] norm(x)
>>
>> mais je ne trouve pas la bonne syntaxe.
>
> Je n'ai pas l'impression qu'on puisse faire comme ça avec gnuplot avec les
> versions que je connais. Regarde sur le site de la Guildre, par exemple.
>
> Je commencerais par fabriquer à partir d'un programme fortran, C, ... un
> fichier intermédiaire toto.dat où chaque ligne contiendrait deux nombres :
> x norm(x)
> où x est l'un des éléments de la troisième colone de ton fichier
> /var/cache/via686/freebox (si j'ai bien compris tes notations)
> et où norm(x) serait calculé à partir des bibliothèques du langage du
> programme en question.
>
> Ce n'est qu'après que j'utiliserais gnuplot avec une sous commande du type
> plot 'toto.dat' using 1:2 ...
>
> Une fois la méthode au point, tu dois pouvoir tout regrouper dans un
> batch.
>
> Michel
>
> --
> Michel Karatchentzeff
> mk@??? karat@???
> Fondation Louis de Broglie, 23, rue Marsoulan, 75012 Paris, FRANCE
> http://MichelKaratchentzeff.free.fr
>
> Merci de ne pas ajouter, sauf nécessité, ce message à votre réponse.
> Je dispose déjà d'un double.