郭寶仁,林慧卿,劉俊芳 ,郭 宇
(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
若在計算機系統工具任務計劃程序內,新建計劃任務時,觸發器選擇在每日固定時間,操作選擇執行該批處理文件,則在以后每天所選擇的固定時間點,該批處理命令將自動執行,不再需要任何人為操作,完全實現自動化。
該程序編輯修改方便,操作簡單,對計算機性能要求較低。后臺運行時,完全不影響計算機的正常工作,若結合計算機內的計劃任務,此程序則可完全實現自動化。該批處理程序可以定時監控前兆儀器網絡狀態、網絡的連接狀態,定時下載前兆儀器當天數據文件,實現當天數據的定時備份。監控到前兆儀器網絡中斷時,自動發出語音告警,滿足前兆儀器網絡狀態實時監控的需求。該程序的運用可提高前兆儀器運維工作效率,減少儀器缺記,進而提高觀測數據連續率和觀測資料的質量。