Como plotar CDF a partir de uma lista ordenada

1

Então eu escrevi o shell script para pingar um servidor web 86.400 vezes e gravar a saída em um arquivo de texto. Exemplo de um ping abaixo:

64 bytes from a104-100-153-112.deploy.static.akamaitechnologies.com (104.100.153.112): icmp_seq=1 ttl=60 time=12.6 ms
64 bytes from a104-100-153-112.deploy.static.akamaitechnologies.com (104.100.153.112): icmp_seq=2 ttl=60 time=17.2 ms
64 bytes from a104-100-153-112.deploy.static.akamaitechnologies.com (104.100.153.112): icmp_seq=3 ttl=60 time=11.0 ms

Meu primeiro problema é que preciso extrair o valor do tempo de ida e volta (12.6) da saída do ping bruto para um segundo arquivo de texto. O que eu tenho agora eu acredito que irá ignorar o ponto decimal em 12.6 e só aceitará os valores numéricos. Meu código abaixo:

sed 's/.* time= \ ([0-9]* \ ). * //' pingoutput.txt | sort -n > sortedtime.txt

Depois de extrair esses valores de tempo em sortedtime.txt , eu leio o arquivo de texto e faço cada linha (assim, cada tempo de ida e volta) em um elemento em uma lista chamada timelist[] . Em seguida, ele imprime o tamanho e a lista inteira para garantir que a lista receba todos os 86400 tempos de ida e volta e eles foram classificados corretamente. Meu código abaixo:

    with open("sortedtime.txt", 'r') as time:
         timelist = []
         for line in time:
             timelist.append(line)
         time.close()

   print timelist[0:86399]
   print len(timelist)

Meu segundo e último problema é que preciso plotar um CDF de todos os meus valores nessa lista de lista de tempo e exibi-lo. Eu sou novo em Python e não estou muito familiarizado com o pacote matplotlib.pyplot e, portanto, não entendo como eu planejo a plotagem dos elementos da lista no eixo x versus um eixo de 0 a 1 y.

Estou trabalhando no Linux, qualquer ajuda é muito apreciada!

    
por user192403 29.09.2016 / 00:51

0 respostas