따라서 웹 서버에 86,400번 핑을 보내고 그 출력을 텍스트 파일에 기록하는 쉘 스크립트를 작성했습니다. 아래 1개의 핑 예시:
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
첫 번째 문제는 원시 핑 출력에서 왕복(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에서 작업 중이며 도움을 주시면 대단히 감사하겠습니다!