타임 스탬프로 핑
Windows 명령 프롬프트 cmd
에서ping -t to 10.21.11.81
Reply from 10.21.11.81: bytes=32 time=3889ms TTL=238
Reply from 10.21.11.81: bytes=32 time=3738ms TTL=238
Reply from 10.21.11.81: bytes=32 time=3379ms TTL=238
이와 같은 출력을 얻을 수있는 가능성이 있습니까?
10:13:29.421875 Reply from 10.21.11.81: bytes=32 time=3889ms TTL=238
10:13:29.468750 Reply from 10.21.11.81: bytes=32 time=3738ms TTL=238
10:13:29.468751 Reply from 10.21.11.81: bytes=32 time=3379ms TTL=238
CMD에서 제공하는 명령만으로이 작업을 수행하고 싶습니다.
@echo off
ping -t localhost|find /v ""|cmd /q /v:on /c "for /l %%a in (0) do (set "data="&set /p "data="&if defined data echo(!time! !data!)"
참고 : 배치 파일 내에서 사용할 코드입니다. 대체 명령 줄에서 사용 %%a
하여%a
핑을 시작하고 올바른 라인 버퍼 출력 ( find /v
)을 강제 실행 한 cmd
다음 현재 시간이 접두사 인 콘솔에 에코 될 파이프 된 데이터를 읽는 무한 루프를 수행하는 지연된 확장을 사용 하여 프로세스를 시작합니다 .
2015-01-08 edited : 더 빠른 / 최신 머신 / OS 버전에서는 이전 코드에 동기화 문제가있어 명령이 여전히 쓰기를 수행하고 결과가 줄을 잘라내는 set /p
동안 줄을 읽습니다 ping
.
@echo off
ping -t localhost|cmd /q /v /c "(pause&pause)>nul & for /l %%a in () do (set /p "data=" && echo(!time! !data!)&ping -n 2 localhost>nul"
두 개의 추가 pause
명령이 서브 쉘의 시작 부분에 포함되어 있습니다 (하나만 사용할 수 있지만 pause
입력 문자 를 소비하므로 CRLF 쌍이 끊어지고 LF가있는 행을 읽음) 입력 데이터를 기다리며 a ping -n 2 localhost
가 포함됩니다. 내부 루프에서 읽을 때마다 잠시 기다리십시오. 그 결과 더 안정적인 동작과 CPU 사용량이 줄어 듭니다.
참고 : 내부 ping
는로 바꿀 수 pause
있지만 읽은 각 행의 첫 번째 문자는에서 소비되고 pause
검색되지 않습니다.set /p
WindowsPowershell :
옵션 1
ping.exe -t COMPUTERNAME|Foreach{"{0} - {1}" -f (Get-Date),$_}
옵션 2
Test-Connection -Count 9999 -ComputerName COMPUTERNAME | Format-Table @{Name='TimeStamp';Expression={Get-Date}},Address,ProtocolAddress,ResponseTime
다음과 같이 할 수 있습니다.
ping 10.0.0.1 | while read line; do echo `date` - $line; done
마지막에 ^ C를 눌렀을 때 일반적으로 얻는 통계는 제공하지 않습니다.
배치 스크립트 :
@echo off
set /p host=host Address:
set logfile=Log_%host%.log
echo Target Host = %host% >%logfile%
for /f "tokens=*" %%A in ('ping %host% -n 1 ') do (echo %%A>>%logfile% && GOTO Ping)
:Ping
for /f "tokens=* skip=2" %%A in ('ping %host% -n 1 ') do (
echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %%A>>%logfile%
echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %%A
timeout 1 >NUL
GOTO Ping)
이 스크립트는 ping 할 호스트를 묻습니다. Ping 출력은 화면과 로그 파일로 출력됩니다. 로그 파일 출력 예 :
Target Host = www.nu.nl
Pinging nu-nl.gslb.sanomaservices.nl [62.69.166.210] with 32 bytes of data:
24-Aug-2015 13:17:42 Reply from 62.69.166.210: bytes=32 time=1ms TTL=250
24-Aug-2015 13:17:43 Reply from 62.69.166.210: bytes=32 time=1ms TTL=250
24-Aug-2015 13:17:44 Reply from 62.69.166.210: bytes=32 time=1ms TTL=250
로그 파일 이름은 LOG_ [hostname] .log이며 스크립트와 동일한 폴더에 기록됩니다.
Windows에서
다른 답변 중 하나를 사용할 수 있습니다.
Unix / Linux에서
while :;do ping -n -w1 -W1 -c1 10.21.11.81| grep -E "rtt|100%"| sed -e "s/^/`date` /g"; sleep 1; done
또는 pingt
~ / .bashrc의 기능 으로 :
pingt() {
while :;do ping -n -w1 -W1 -c1 $1| grep -E "rtt|100%"| sed -e "s/^/`date` /g"; sleep 1; done
}
출처 : https://stackoverflow.com/a/26666549/1069083
누군가에게 도움이 될 수 있습니다. [Windows PowerShell에서 실행해야 함]
ping.exe -t 10.227.23.241 |Foreach{"{0} - {1}" -f (Get-Date),$_} >> Ping_IP.txt
-현재 디렉터리 또는 사용자 홈 경로에서 Ping_IP.txt 파일을 확인합니다.
위의 명령은 아래와 같은 파일로 출력합니다.
9/14/2018 8:58:48 AM - Pinging 10.227.23.241 with 32 bytes of data:
9/14/2018 8:58:48 AM - Reply from 10.227.23.241: bytes=32 time=29ms TTL=117
9/14/2018 8:58:49 AM - Reply from 10.227.23.241: bytes=32 time=29ms TTL=117
9/14/2018 8:58:50 AM - Reply from 10.227.23.241: bytes=32 time=28ms TTL=117
9/14/2018 8:58:51 AM - Reply from 10.227.23.241: bytes=32 time=27ms TTL=117
9/14/2018 8:58:52 AM - Reply from 10.227.23.241: bytes=32 time=28ms TTL=117
9/14/2018 8:58:53 AM - Reply from 10.227.23.241: bytes=32 time=27ms TTL=117
9/14/2018 8:58:54 AM - Reply from 10.227.23.241: bytes=32 time=28ms TTL=117
이 시도:
다음을 사용하여 배치 파일을 만듭니다.
echo off
cd\
:start
echo %time% >> c:\somedirectory\pinghostname.txt
ping pinghostname >> c:\somedirectory\pinghostname.txt
goto start
요구 사항에 따라 ping 명령에 고유 한 옵션을 추가 할 수 있습니다. 이것은 핑과 같은 줄에 타임 스탬프를 두지 않지만 여전히 필요한 정보를 얻습니다.
더 나은 방법은 fping을 사용 하는 것입니다. http://www.kwakkelflap.com/fping.html 로 이동 하여 다운로드하십시오.
이것을 insted보십시오 :
ping -c2 -s16 sntdn | awk '{print NR " | " strftime("%Y-%m-%d_%H:%M:%S") " | " $0 }' A VER QUE TE PARECE, OJALA Y TE SIRVA
Another powershell method (I only wanted failures)
$ping = new-object System.Net.NetworkInformation.Ping
$target="192.168.0.1"
Write-Host "$(Get-Date -format 's') Start ping to $target"
while($true){
$reply = $ping.send($target)
if ($reply.status -eq "Success"){
# ignore success
Start-Sleep -Seconds 1
}
else{
Write-Host "$(Get-Date -format 's') Destination unreachable" $target
}
}
I also need this to monitor the network issue for my database mirroring time out issue. I use the command code as below:
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 4.5 KB per min (around).
Thank for raymond.cc. https://www.raymond.cc/blog/timestamp-ping-with-hrping/
I think my code its what everyone need:
ping -w 5000 -t -l 4000 -4 localhost|cmd /q /v /c "(pause&pause)>nul &for /l %a in () do (for /f "delims=*" %a in ('powershell get-date -format "{ddd dd-MMM-yyyy HH:mm:ss}"') do (set datax=%a) && set /p "data=" && echo([!datax!] - !data!)&ping -n 2 localhost>nul"
to display:
[Fri 09-Feb-2018 11:55:03] - Pinging localhost [127.0.0.1] with 4000 bytes of data:
[Fri 09-Feb-2018 11:55:05] - Reply from 127.0.0.1: bytes=4000 time<1ms TTL=128
[Fri 09-Feb-2018 11:55:08] - Reply from 127.0.0.1: bytes=4000 time<1ms TTL=128
[Fri 09-Feb-2018 11:55:11] - Reply from 127.0.0.1: bytes=4000 time<1ms TTL=128
[Fri 09-Feb-2018 11:55:13] - Reply from 127.0.0.1: bytes=4000 time<1ms TTL=128
note: code to be used inside a command line, and you must have powershell preinstalled on os.
An enhancement to MC ND's answer for Windows.
I needed a script to run in WinPE, so I did the following:
@echo off
SET TARGET=192.168.1.1
IF "%~1" NEQ "" SET TARGET=%~1
ping -t %TARGET%|cmd /q /v /c "(pause&pause)>nul & for /l %%a in () do (set /p "data=" && echo(!time! !data!)&ping -n 2 localhost >nul"
This can be hardcoded to a particular IP Address (192.168.1.1
in my example) or take a passed parameter. And as in MC ND's answer, repeats the ping about every 1 second.
참고URL : https://stackoverflow.com/questions/24906268/ping-with-timestamp
'developer tip' 카테고리의 다른 글
jquery의 버튼 텍스트 토글 (0) | 2020.11.22 |
---|---|
MVC 3 문자열을 뷰의 모델로 전달할 수 없습니까? (0) | 2020.11.22 |
UI없이 활동을 시작하는 방법은 무엇입니까? (0) | 2020.11.22 |
Android의 스피너 배경 디자인 및 색상을 변경하는 방법은 무엇입니까? (0) | 2020.11.22 |
부트 스트랩의 고정 바닥 글 (0) | 2020.11.22 |