一个网络联通情况测试(定时ping)的bat
2011-10-03 12:23
477 查看
一个以前工作时用到的网络联通情况测试, 说白了就是隔一段时间ping一下..因为那时有几个主机不太稳定,所以在网上找了一下,本来想用pingplus..好像叫超级ping吧.那软件... 电信那边的人说看不懂.闷....不得已就搞了这个.bat版的
ServerPingShell.bat (运行时的文件.定义变量的作用)
@echo off
echo ***************************************************************************
echo ** 网络联通情况记录 **
echo ***************************************************************************
echo 程序正在运行中,请稍后…………
set logfile=网络联通情况%date:~0,4%%date:~5,2%%date:~8,2%.txt
set pinglog=pinglog.txt
set logfind=logfind.txt
set cmdping=ping
set driver=ip地址:
set timeout=超时情况记录.txt
set callbatfilename=ServerPing.bat
IF NOT EXIST %logfile% echo IP地址 Average Minimum Maximum Sent Received lost date time>>%logfile% & echo -------------------------------------------------------------------------------->>%logfile%
call %callbatfilename% %driver% [这里填你要的ip地址,呵呵只一个啊]
exit----------------------------------------------分隔线不包括此行!
ServerPing.bat (ping工作的主要文件,截取导出)
%cmdping% %2 >> %pinglog%
Set temp123=TEMP.txt
FIND /C "Request timed out" %pinglog% > %temp123%
FOR /F "tokens=3" %%i in (%temp123%) do set lv_cnt=%%i
if %lv_cnt% GTR 3 date /t >>%timeout% && time /t >>%timeout% && type %pinglog% >>%timeout% && echo ------------->> %timeout%
find "statistics" %pinglog% >> %logfind%
For /f "skip=2 tokens=4" %%m In (%logfind%) Do set ip=%%m
find "Average" %pinglog% >> %logfind%
For /f "skip=2 tokens=3" %%n In (%logfind%) Do set Average=%%n
For /f "skip=2 tokens=6" %%o In (%logfind%) Do set Minimum=%%o
For /f "skip=2 tokens=9" %%p In (%logfind%) Do set Maximum=%%p
find "Lost" %pinglog% >> %logfind%
For /f "skip=2 tokens=4" %%q In (%logfind%) Do set Sent=%%q
For /f "skip=2 tokens=7" %%r In (%logfind%) Do set Received=%%r
For /f "skip=2 tokens=11" %%s In (%logfind%) Do set lost=%%s
@echo on
if %lv_cnt% EQU 0 echo %ip% %Average% %Minimum% %Maximum%, %Sent% %Received% %lost%) %date% %time% >> %logfile%
if %lv_cnt% GTR 3 echo %ip% 超 时 %date% %time% >> %logfile%
echo ------------->> %logfile%
@echo off
del %pinglog%
del %logfind%
del %temp123%----------------------------------------------分隔线不包括此行!
HideRunPing.vbs (bat自身不能隐藏,定时会跑出来,很烦.加个vbs来隐藏和定时)
do
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c ServerPingShell.bat",vbhide
wscript.sleep 300000
loop----------------------------------------------分隔线不包括此行!
就这样..进行一下HideRunPing.vbs 后每30秒自已ping一次.时间可以自已在vbs文件里那个wscript.sleep [时间] 改..
导出的效果差不多就是.. 呵呵.
ServerPingShell.bat (运行时的文件.定义变量的作用)
@echo off
echo ***************************************************************************
echo ** 网络联通情况记录 **
echo ***************************************************************************
echo 程序正在运行中,请稍后…………
set logfile=网络联通情况%date:~0,4%%date:~5,2%%date:~8,2%.txt
set pinglog=pinglog.txt
set logfind=logfind.txt
set cmdping=ping
set driver=ip地址:
set timeout=超时情况记录.txt
set callbatfilename=ServerPing.bat
IF NOT EXIST %logfile% echo IP地址 Average Minimum Maximum Sent Received lost date time>>%logfile% & echo -------------------------------------------------------------------------------->>%logfile%
call %callbatfilename% %driver% [这里填你要的ip地址,呵呵只一个啊]
exit----------------------------------------------分隔线不包括此行!
ServerPing.bat (ping工作的主要文件,截取导出)
%cmdping% %2 >> %pinglog%
Set temp123=TEMP.txt
FIND /C "Request timed out" %pinglog% > %temp123%
FOR /F "tokens=3" %%i in (%temp123%) do set lv_cnt=%%i
if %lv_cnt% GTR 3 date /t >>%timeout% && time /t >>%timeout% && type %pinglog% >>%timeout% && echo ------------->> %timeout%
find "statistics" %pinglog% >> %logfind%
For /f "skip=2 tokens=4" %%m In (%logfind%) Do set ip=%%m
find "Average" %pinglog% >> %logfind%
For /f "skip=2 tokens=3" %%n In (%logfind%) Do set Average=%%n
For /f "skip=2 tokens=6" %%o In (%logfind%) Do set Minimum=%%o
For /f "skip=2 tokens=9" %%p In (%logfind%) Do set Maximum=%%p
find "Lost" %pinglog% >> %logfind%
For /f "skip=2 tokens=4" %%q In (%logfind%) Do set Sent=%%q
For /f "skip=2 tokens=7" %%r In (%logfind%) Do set Received=%%r
For /f "skip=2 tokens=11" %%s In (%logfind%) Do set lost=%%s
@echo on
if %lv_cnt% EQU 0 echo %ip% %Average% %Minimum% %Maximum%, %Sent% %Received% %lost%) %date% %time% >> %logfile%
if %lv_cnt% GTR 3 echo %ip% 超 时 %date% %time% >> %logfile%
echo ------------->> %logfile%
@echo off
del %pinglog%
del %logfind%
del %temp123%----------------------------------------------分隔线不包括此行!
HideRunPing.vbs (bat自身不能隐藏,定时会跑出来,很烦.加个vbs来隐藏和定时)
do
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c ServerPingShell.bat",vbhide
wscript.sleep 300000
loop----------------------------------------------分隔线不包括此行!
就这样..进行一下HideRunPing.vbs 后每30秒自已ping一次.时间可以自已在vbs文件里那个wscript.sleep [时间] 改..
导出的效果差不多就是.. 呵呵.
相关文章推荐
- 用C#实现实现简单的 Ping 的功能,用于测试网络是否已经联通
- C#实现简单的 Ping 的功能,用于测试网络是否已经联通
- go 语言使用ssh包连接操作Linux服务器,使用ping包查看服务器网络是否正常,使用cron包定时查询该服务器CPU使用情况
- 用C#实现实现简单的 Ping 的功能,用于测试网络是否已经联通
- 用C#实现实现简单的 Ping 的功能,用于测试网络是否已经联通
- 用C#实现实现简单的 Ping 的功能,用于测试网络是否已经联通
- C#实现简单的 Ping 的功能,用于测试网络是否已经联通
- 用C#实现实现简单的 Ping 的功能,用于测试网络是否已经联通
- 用C#实现实现简单的 Ping 的功能,用于测试网络是否已经联通
- 用C#实现实现简单的 Ping 的功能,用于测试网络是否已经联通
- shell下用ping 测试一个网络是否通,只显示结果而不显示过程输出
- 用C#实现实现简单的 Ping 的功能,用于测试网络是否已经联通
- 用C#实现实现简单的 Ping 的功能,用于测试网络是否已经连通
- 小谈Ping在网络测试中的作用
- 网络测试常用的命令-比较ping,tracert和pathping等命令之间的关系
- linux 操作系统中ping测试网络连通性命令的使用
- 小谈Ping在网络测试中的作用
- 使用C#调用外部Ping命令获取网络连接情况(转——主要是对dos命令应用)
- C# Ping类的例子,可用于测试网络,主机响应时间等。