在工作中,判断网络是否通畅,首选命令就是ping,但有时候我们需要持续ping一个或多个地址时,需要加 -t 即可,但有时候需要在ping的时候加入时间戳并把ping记录写入到日志里面,方法如下:
windos版:
首选把下面代码复制到文本里去,然后把扩展名更改为.bat
@echo off @echo. 提醒:请以管理员身份运行 @echo. 终止请按: Ctrl+C set /p host=host: set logfile=%~dp0%host%.txt echo Target Host=%host% > %logfile% :loop for /f "tokens=* skip=2" %%A in (ping %host% -n 1) do ( echo %date% %time:~0,-3% %%A>>%logfile% echo %date% %time:~0,-3% %%A timeout /t 1 /nobreak>nul goto loop ) pause>nul注:%~dp0 为获取当前目录,即在运行这个批处理的当前目录生成日志,
也可以指定其他路径。
下面是运行的最终效果。
如果批处理汉字部分显示乱码,可以用notepad++打开这个批处理,如下图
编码选择“使用ANSI编码”
linux版:
root@ay:/home/lw# ping 192.168.1.1 -c 6|awk {print strftime("%c",systime()) "\t"$0} Wed Mar 23 16:49:24 2022PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. Wed Mar 23 16:49:24 202264 bytes from 192.168.1.1: icmp_seq=1 ttl=128 time=2.27 ms Wed Mar 23 16:49:25 202264 bytes from 192.168.1.1: icmp_seq=2 ttl=128 time=2.28 ms ^AWed Mar 23 16:49:26 202264 bytes from 192.168.1.1: icmp_seq=3 ttl=128 time=5.10 ms Wed Mar 23 16:49:27 202264 bytes from 192.168.1.1: icmp_seq=4 ttl=128 time=3.42 ms Wed Mar 23 16:49:28 202264 bytes from 192.168.1.1: icmp_seq=5 ttl=128 time=1.92 ms保存日志可以用下面这条命令
ping 192.168.1.1 -c 6|awk {print strftime("%c",systime()) "\t"$0} >ping.log