基于Windows批处理实现前兆仪器网络状态监控及观测数据备份

2019-03-20 11:40郭宝仁林慧卿刘俊芳
山西地震 2019年1期
关键词:批处理前兆命令

郭宝仁,林慧卿,刘俊芳 ,郭 宇

(1.山西省地震局定襄地震台,山西 定襄 035400;2.福建省地震局永安地震台,福建 永安 366000;3.太原大陆裂谷动力学国家野外科学观测研究站,山西 太原 030025)

0 引言

前兆仪器的正常运行是保证观测数据连续与完整的重要前提。当网络中断时,前兆仪器可能死机或故障,如不及时处理,就可能导致仪器缺记。所以,定时监控前兆仪器网络状态非常重要。传统方式采用ping命令手工检查网络状态,效率较低。检测时,需要手动输入所有仪器IP地址,并且无法告警[1]。文章通过编辑批处理文件来监控前兆仪器网络状态,并结合Windows计划任务,实现定时下载当天数据文件。

1 批处理概述

批处理是一种简化的脚本语言,也称作宏。它应用于DOS和Windows系统中,是由DOS或者Windows系统的内嵌命令解释器解释运行。批处理文件具有.bat或者.cmd的扩展名,可以用记事本直接编辑或用DOS命令创建,也可以用DOS下的文本编辑器来编辑[2]。批处理的作用就是能够自动连续地执行多条命令,一个批处理文件就是多条批处理命令的合集。一个最简单的程序,执行一次批处理就可以将所包含的所有命令从头到尾执行一遍,提高了工作效率。简单的批处理文件使用记事本就可以编辑,方便、灵活、功能强大、自动化程度高、占用电脑资源少。

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

若在计算机系统工具任务计划程序内,新建计划任务时,触发器选择在每日固定时间,操作选择执行该批处理文件,则在以后每天所选择的固定时间点,该批处理命令将自动执行,不再需要任何人为操作,完全实现自动化。

3 结语

该程序编辑修改方便,操作简单,对计算机性能要求较低。后台运行时,完全不影响计算机的正常工作,若结合计算机内的计划任务,此程序则可完全实现自动化。该批处理程序可以定时监控前兆仪器网络状态、网络的连接状态,定时下载前兆仪器当天数据文件,实现当天数据的定时备份。监控到前兆仪器网络中断时,自动发出语音告警,满足前兆仪器网络状态实时监控的需求。该程序的运用可提高前兆仪器运维工作效率,减少仪器缺记,进而提高观测数据连续率和观测资料的质量。

猜你喜欢
批处理前兆命令
只听主人的命令
恶意批处理文件导致电脑黑屏、反复重启、无响应的原因分析及应对思路
论春秋时期天命观的变迁及其新标准
不装软件批处理为文件夹加锁
哪些现象是地震前兆
移防命令下达后
借助批处理 让Cortana变聪明
这是人民的命令
腾冲地电场震前的前兆异常分析
全国前兆台网“九五”系统台站接入的设计与实施*