모든 핑 결과에 타임 스탬프를 찍는 방법은 무엇입니까?
Ping 은 기본적으로 다음을 반환합니다.
64 bytes from 203.173.50.132: icmp_seq=0 ttl=244 time=57.746 ms
타임 스탬프를 추가 할 수있는 방법이 있습니까?
예를 들면
Mon 21 May 2012 15:15:37 EST | 64 bytes from 203.173.50.132: icmp_seq=0 ttl=244 time=57.746 ms
나는 OS X v10.7 (Lion)에 BSD 버전의 핑 이있는 것 같습니다 .
AWK에 다음이없는 경우 strftime()
:
ping host | perl -nle 'print scalar(localtime), " ", $_'
파일로 리디렉션하려면 표준 셸 리디렉션을 사용하고 출력 버퍼링을 끕니다.
ping host | perl -nle 'BEGIN {$|++} print scalar(localtime), " ", $_' > outputfile
타임 스탬프에 ISO8601 형식을 원하는 경우 :
ping host | perl -nle 'use Time::Piece; BEGIN {$|++} print localtime->datetime, " ", $_' > outputfile
어떤 이유로 Perl 기반 솔루션을 파일로 리디렉션 할 수 없었기 때문에 계속 검색하고 이렇게 할 수있는 bash
유일한 방법을 찾았습니다 .
ping www.google.fr | while read pong; do echo "$(date): $pong"; done
Wed Jun 26 13:09:23 CEST 2013: PING www.google.fr (173.194.40.56) 56(84) bytes of data.
Wed Jun 26 13:09:23 CEST 2013: 64 bytes from zrh04s05-in-f24.1e100.net (173.194.40.56): icmp_req=1 ttl=57 time=7.26 ms
Wed Jun 26 13:09:24 CEST 2013: 64 bytes from zrh04s05-in-f24.1e100.net (173.194.40.56): icmp_req=2 ttl=57 time=8.14 ms
크레딧은 https://askubuntu.com/a/137246 으로 이동합니다.
에서 man ping
:
-D Print timestamp (unix time + microseconds as in gettimeofday) before each line.
다음과 같이 생성됩니다.
[1337577886.346622] 64 bytes from 4.2.2.2: icmp_req=1 ttl=243 time=47.1 ms
그런 다음 ping
응답 에서 타임 스탬프를 구문 분석하고 date
.
터미널 출력 :
ping -i 5 google.com | xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}'
파일 출력 :
ping -i 5 google.com | xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' > test.txt
터미널 + 파일 출력 :
ping -i 5 google.com | xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' | tee test.txt
파일 출력 배경 :
nohup ping -i 5 google.com | xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' > test.txt &
내 원래 제출은 각 줄의 날짜를 평가하지 않았기 때문에 잘못되었습니다. 수정되었습니다.
이 시도
ping google.com | xargs -L 1 -I '{}' date '+%+: {}'
다음 출력을 생성합니다.
Thu Aug 15 10:13:59 PDT 2013: PING google.com (74.125.239.103): 56 data bytes
Thu Aug 15 10:13:59 PDT 2013: 64 bytes from 74.125.239.103: icmp_seq=0 ttl=55 time=14.983 ms
Thu Aug 15 10:14:00 PDT 2013: 64 bytes from 74.125.239.103: icmp_seq=1 ttl=55 time=17.340 ms
Thu Aug 15 10:14:01 PDT 2013: 64 bytes from 74.125.239.103: icmp_seq=2 ttl=55 time=15.898 ms
Thu Aug 15 10:14:02 PDT 2013: 64 bytes from 74.125.239.103: icmp_seq=3 ttl=55 time=15.720 ms
Thu Aug 15 10:14:03 PDT 2013: 64 bytes from 74.125.239.103: icmp_seq=4 ttl=55 time=16.899 ms
Thu Aug 15 10:14:04 PDT 2013: 64 bytes from 74.125.239.103: icmp_seq=5 ttl=55 time=16.242 ms
Thu Aug 15 10:14:05 PDT 2013: 64 bytes from 74.125.239.103: icmp_seq=6 ttl=55 time=16.574 ms
-L 1 옵션은 xargs가 단어 대신 한 번에 한 줄씩 처리하도록합니다.
OS X에서는 간단히 --apple-time 옵션을 사용할 수 있습니다.
ping -i 2 --apple-time www.apple.com
다음과 같은 결과를 생성합니다.
10:09:55.691216 64 bytes from 72.246.225.209: icmp_seq=0 ttl=60 time=34.388 ms
10:09:57.687282 64 bytes from 72.246.225.209: icmp_seq=1 ttl=60 time=25.319 ms
10:09:59.729998 64 bytes from 72.246.225.209: icmp_seq=2 ttl=60 time=64.097 ms
이 시도:
ping www.google.com | while read endlooop; do echo "$(date): $endlooop"; done
다음과 같은 결과를 반환합니다.
Wednesday 18 January 09:29:20 AEDT 2017: PING www.google.com (216.58.199.36) 56(84) bytes of data.
Wednesday 18 January 09:29:20 AEDT 2017: 64 bytes from syd09s12-in-f36.1e100.net (216.58.199.36): icmp_seq=1 ttl=57 time=2.86 ms
Wednesday 18 January 09:29:21 AEDT 2017: 64 bytes from syd09s12-in-f36.1e100.net (216.58.199.36): icmp_seq=2 ttl=57 time=2.64 ms
Wednesday 18 January 09:29:22 AEDT 2017: 64 bytes from syd09s12-in-f36.1e100.net (216.58.199.36): icmp_seq=3 ttl=57 time=2.76 ms
Wednesday 18 January 09:29:23 AEDT 2017: 64 bytes from syd09s12-in-f36.1e100.net (216.58.199.36): icmp_seq=4 ttl=57 time=1.87 ms
Wednesday 18 January 09:29:24 AEDT 2017: 64 bytes from syd09s12-in-f36.1e100.net (216.58.199.36): icmp_seq=5 ttl=57 time=2.45 ms
결과를 awk
다음으로 파이프하십시오 .
ping host | awk '{if($0 ~ /bytes from/){print strftime()"|"$0}else print}'
macOS에서 할 수있는 일
ping --apple-time 127.0.0.1
출력은 다음과 같습니다.
16:07:11.315419 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.064 ms
16:07:12.319933 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.157 ms
16:07:13.322766 64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.066 ms
16:07:14.324649 64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.148 ms
16:07:15.328743 64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.092 ms
이러한 출력이 필요한 시간에 대한 타임 스탬프 또는 간격을 지정하지 않았으므로 무한 루프로 간주했습니다. 필요에 따라 변경할 수 있습니다.
while true
do
echo -e "`date`|`ping -n -c 1 <IP_TO_PING>|grep 'bytes from'`"
sleep 2
done
ping -D -n -O -i1 -W1 8.8.8.8
또는 어쩌면
while true; do \
ping -n -w1 -W1 -c1 8.8.8.8 \
| grep -E "rtt|100%" \
| sed -e "s/^/`date` /g"; \
sleep 1; \
done
데이터베이스 미러링 시간 초과 문제에 대한 네트워크 문제를 모니터링하는데도 필요합니다. 다음과 같이 명령 코드를 사용합니다.
ping -t Google.com|cmd /q /v /c "(pause&pause)>nul & for /l %a in () do (set /p "data=" && echo(!date! !time! !data!)&ping -n 2 Google.com>nul" >C:\pingtest.txt
You just need to modify Google.com to your server name. It works perfectly for me. and remember to stop this when you finished. The pingtest.txt file will increase by 1 KB per second (around).
Thank for raymond.cc. https://www.raymond.cc/blog/timestamp-ping-with-hrping/
Try this line.
while sleep 1;do echo "$(date +%d-%m-%y-%T) $(ping -c 1 whatever.com | gawk 'FNR==2{print "Response from:",$4,$8}')" | tee -a /yourfolder/pingtest.log;done
You'll have to cancel it with ctrl-c
tho.
You can create a function in your ~/.bashrc
file, so you get a ping command ping-t
on your console:
function ping-t { ping "$1" | while read pong; do echo "$(date): $pong"; done; }
Now you can call this on the console:
ping-t example.com
Sa 31. Mär 12:58:31 CEST 2018: PING example.com (93.184.216.34) 56(84) bytes of data.
Sa 31. Mär 12:58:31 CEST 2018: 64 bytes from 93.184.216.34 (93.184.216.34): icmp_seq=1 ttl=48 time=208 ms
Sa 31. Mär 12:58:32 CEST 2018: 64 bytes from 93.184.216.34 (93.184.216.34): icmp_seq=2 ttl=48 time=233 ms
참고URL : https://stackoverflow.com/questions/10679807/how-do-i-timestamp-every-ping-result
'Program Tip' 카테고리의 다른 글
충돌 후 Eclipse가 시작되지 않음 (0) | 2020.12.09 |
---|---|
아이콘 만있는 Tablayout (0) | 2020.12.09 |
USB를 통해 앱 설치 : 장치가 일시적으로 제한됨 (0) | 2020.12.09 |
TabLayout 탭 제목 텍스트 (소문자) (0) | 2020.12.09 |
leftBarButtonItem을 설정 한 후 UINavigationController에서 뒤로 / 왼쪽 스 와이프 제스처를 활성화하는 방법은 무엇입니까? (0) | 2020.12.09 |