通过脚本提升运维效率
越是临近节假日越是怕设备会出问题,所以每日对网络状况进行监测就成了我们日常最重要的工作之一。然而对门店而言,可能没有上线什么高深的网管监控软件,我想大家多是使用一些破解版软件如HostMonitor。
而我个人的习惯是每天早上对网络及关键设备进行ping操作,这样也可以在营业前简单看看网络状况。如果有问题可以及时发现,并预留出处理的时间。然而这可不是轻松的活儿,因为门店可能有几十台交换机、服务器、以及上百个AP等等。如果一个个地手敲命令,即使累不死也早就烦死了。所以就想法子来偷偷懒,用批处理命令来搞定这个每日简单的检查。
鉴于我们要监控的设备地址都是规划好的,且是连续的地址段,所以用循环来历遍是比较省事儿—— FOR循环。
@echo off
FOR /L %%P in (10,1,23) DO ping -n 5 192.168.224.%%P
Pause
保存运行后,如图所示:
只要双击后就不用管了,不要再一个个地手敲命令了,挺方便!不过要一直盯着看,多麻烦,而且时间长对眼睛也不好。干脆就把结果输入到文本中保存,不要一直盯着看,运行期间该干啥就去干啥,只要运行完后看看保存的文件即可。
所以修改下:
FOR /L %%P in (10,1,23) DO ping -n 5 192.168.224.%%P >>result.txt
这样就把结果保存了,但是运行完后,命令窗口不能自动退出,还要手工敲下任意键才能退出,改成自动退出,并记录下检查的时间,把需要监控的交换机加上去:
date /t >>result.txt
time /t >>result.txt
goto Pin
:Pin
FOR /L %%P in (10,1,23) DO ping -n 5 192.168.224.%%P >>result.txt
FOR /L %%I in (30,1,34) DO ping -n 5 192.168.224.%%I >>result.txt
FOR /L %%A in (196,1,206) DO ping -n 5 192.168.224.%%A >>result.txt
goto Ex
:Ex
exit
保存后运行后,命令窗口自动退出,并保存文件如下:
这个输出的时间看上去有点LOW了,最好改成比较直观一点且精确到秒,改写下:
set "YMDHMS=%date:0,4%/%date:5,2%/%date:~8,2% %date:~10,6% %time:0,3%%time:3,2%%time:~5,3%"
echo %YMDHMS% >> result.txt
修改后:
@echo off
set "YMDHMS=%date:~0,4%/%date:~5,2%/%date:~8,2% %date:~10,6% %time:~0,3%%time:~3,2%%time:~5,2%"
echo %YMDHMS% >> result.txt
goto Pin
:Pin
rem 下面开始ping需要检查的交换机
FOR /L %%P in (10,1,23) DO ping -n 5 192.168.224.%%P >>result.txt
FOR /L %%I in (30,1,34) DO ping -n 5 192.168.224.%%I >>result.txt
FOR /L %%A in (196,1,206) DO ping -n 5 192.168.224.%%A >>result.txt
rem 下面开始追踪路由以便查看内网专线状况
tracert 192.168.8.41 >>result.txt
goto Ex
:Ex
exit
输出结果:
这样就搞定了简单的网络监测。如果你还是觉得每天要自己打开批处理来执行,有些麻烦。那可以通过任务计划来让批处理在指定的时间自动执行,并且按照日期来生成并保存每日检查的结果。完整脚本如下(因安全需要图中隐去了外网网关):
cd /d %~dp0
@echo off
set stryear=%date:~0,4%&set strmonth=%date:~5,2%&set strday=%date:~8,2%
set "YMDHMS=%date:~0,4%/%date:~5,2%/%date:~8,2% %date:~10,6% %time:~0,3%%time:~3,2%%time:~5,3%"
echo %YMDHMS% >> %stryear%%strmonth%%strday%.txt
goto Pin
:Pin
rem 下面开始ping需要检查的交换机
ping -n 4 192.168.224.1 >>%stryear%%strmonth%%strday%.txt
FOR /L %%P in (10,1,23) DO ping -n 5 192.168.224.%%P >>%stryear%%strmonth%%strday%.txt
FOR /L %%I in (30,1,34) DO ping -n 5 192.168.224.%%I >>%stryear%%strmonth%%strday%.txt
FOR /L %%A in (196,1,206) DO ping -n 5 192.168.224.%%A >>%stryear%%strmonth%%strday%.txt
rem 下面开始ping需要检查的客流设备
FOR /L %%I in (201,1,210) DO ping -n 4 192.168.224.%%I >>%stryear%%strmonth%%strday%.txt
rem 下面开始ping需要检查的外网网关
ping -n 4 221.2XX.XXX.XX >>%stryear%%strmonth%%strday%.txt
ping -n 4 58.XXX.XXX.XX >>%stryear%%strmonth%%strday%.txt
ping -n 4 223.XXX.XX.XXX >>%stryear%%strmonth%%strday%.txt
rem 下面开始追踪路由以便查看内网专线是否有问题
tracert 192.168.8.198 >>%stryear%%strmonth%%strday%.txt
goto Ex
:Ex
exit
任务计划配置如下图所示:
这样我们只要每天上班打开电脑,第一时间查看下批处理输出的结果。我们就可以看出哪台设备宕机,并及时解决;查看tracert追踪路由,如果发现第二跳路由不是你的1841路由器,而是在电信租赁的办公用专线所提供的下一跳路由,那你的数据走的一定不是内网专线,而是走了VPN备用链路。这就告诉你MSTP数字线路有问题了,请及时处理!