因此,我編寫了 shell 腳本來 ping Web 伺服器 86,400 次,並將輸出寫入文字檔案。下面的 1 個 ping 範例:
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
我的第一個問題是我需要它將原始 ping 輸出中的往返 (12.6) 時間值提取到第二個文字檔案中。我現在所擁有的,我相信會忽略 12.6 中的小數點,只接受數值。我的程式碼如下:
sed 's/.* time= \ ([0-9]* \ ). * /\1/' pingoutput.txt | sort -n > sortedtime.txt
將這些時間值提取到後,sortedtime.txt
我讀取文字檔案並將每一行(因此每個往返時間)放入名為 的清單中的一個元素中timelist[]
。然後,它會列印長度和整個列表,以確保列表包含所有 86400 個往返時間,並且它們已正確排序。我的程式碼如下:
with open("sortedtime.txt", 'r') as time:
timelist = []
for line in time:
timelist.append(line)
time.close()
print timelist[0:86399]
print len(timelist)
我的第二個問題也是最後一個問題是我需要在該時間列表中繪製所有值的 CDF 並顯示它。我是 Python 新手,對這個套件不太熟悉matplotlib.pyplot
,所以我不明白如何在 x 軸與 0 到 1 y 軸上繪製列表元素。
我在 Linux 上工作,非常感謝任何幫助!