郭宝仁,林慧卿,刘俊芳 ,郭 宇
(1.山西省地震局定襄地震台,山西 定襄 035400;2.福建省地震局永安地震台,福建 永安 366000;3.太原大陆裂谷动力学国家野外科学观测研究站,山西 太原 030025)
前兆仪器的正常运行是保证观测数据连续与完整的重要前提。当网络中断时,前兆仪器可能死机或故障,如不及时处理,就可能导致仪器缺记。所以,定时监控前兆仪器网络状态非常重要。传统方式采用ping命令手工检查网络状态,效率较低。检测时,需要手动输入所有仪器IP地址,并且无法告警[1]。文章通过编辑批处理文件来监控前兆仪器网络状态,并结合Windows计划任务,实现定时下载当天数据文件。
批处理是一种简化的脚本语言,也称作宏。它应用于DOS和Windows系统中,是由DOS或者Windows系统的内嵌命令解释器解释运行。批处理文件具有.bat或者.cmd的扩展名,可以用记事本直接编辑或用DOS命令创建,也可以用DOS下的文本编辑器来编辑[2]。批处理的作用就是能够自动连续地执行多条命令,一个批处理文件就是多条批处理命令的合集。一个最简单的程序,执行一次批处理就可以将所包含的所有命令从头到尾执行一遍,提高了工作效率。简单的批处理文件使用记事本就可以编辑,方便、灵活、功能强大、自动化程度高、占用电脑资源少。
当网络中断时,可造成仪器死机或者网络故障,若不及时发现,会造成观测数据缺失。利用批处理程序实现仪器网络监控,程序简单,对系统环境要求低,利用Windows自带的记事本软件就可编辑,编写完成保存为.bat文件,双击即可运行。
文件把需要监测的仪器IP地址、ftp的用户名、密码和仪器内数据存放路径分别逐行写在文件名为IP.txt、name.txt、password.txt、path.txt的文本文档内,程序通过ping命令逐行检查、判断IP地址的连接情况,使用ftp命令下载当日数据。批处理程序实现仪器监控流程和主要代码如图1所示。
图1 程序流程图Fig.1 Program flow chart
程序主要代码:
(1) 网络连接监测部分。
@echo off&setlocal enabledelayedexpansion
:start
set /a nd+=1
set /a time = %TIME:~0,2%%TIME:~3,2%
set /a date = %DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
FOR /F "delims=" %%i in (IP.txt) do (
set /a ndd+=1
ping %%i -n 1 >nul&&(echo %%i 正常&&(if %ndd%==%nd%6000 goto:download))||echo %%i 中断&&echo %%i>不通的 IP.txt&&call:warn)
goto:start
(2) 报警部分。
:warn
mshta vbscript:createobject("sapi.spvoice").speak("注意有仪器失去连接")(window.close)
FOR /F "delims=" %%i in (不通的IP.txt) do (
ping %%i -n 1 >nul&&(goto:start&&del 不通的IP.txt)||echo %%i 中断&&goto:warn)
(3) 数据下载部分。
:download
set /a j+=1
for /f "delims=" %%ip in (IP.txt) do (
set /a ni+=1
if !ni!==%j% (
echo open %%ip>ftp.txt
for /f "delims=" %%n in (name.txt) do (
set /a nn+=1
if !nn!==%j% (
echo %%n>>ftp.txt
for /f "delims=" %%p in (password.txt) do (
set /a np+=1
if !np!==%j% (
echo %%p>>ftp.txt
echo cd path>>ftp.txt
echo lcd C:UsersdxtDesktop>>ftp.txt
echo get *%date%.epd %ip%%date%%time%.txt>>ftp.txt
echo bye>>ftp.txt
ftp -s:ftp.txt
del ftp.txt
))))))
set /a ni=0
set /a nn=0
set /a np=0
if %j% equ 6 (set/a j=0)
goto:start
若在计算机系统工具任务计划程序内,新建计划任务时,触发器选择在每日固定时间,操作选择执行该批处理文件,则在以后每天所选择的固定时间点,该批处理命令将自动执行,不再需要任何人为操作,完全实现自动化。
该程序编辑修改方便,操作简单,对计算机性能要求较低。后台运行时,完全不影响计算机的正常工作,若结合计算机内的计划任务,此程序则可完全实现自动化。该批处理程序可以定时监控前兆仪器网络状态、网络的连接状态,定时下载前兆仪器当天数据文件,实现当天数据的定时备份。监控到前兆仪器网络中断时,自动发出语音告警,满足前兆仪器网络状态实时监控的需求。该程序的运用可提高前兆仪器运维工作效率,减少仪器缺记,进而提高观测数据连续率和观测资料的质量。