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!