目的:
自動執行設備確認,若發現設備有異常,會即時發出LINE通知至相關人員,以便相關人員可適時排除異常現象,尤其是企業單位內重要應用系統所使用的設備機器群,或有些電腦機器必須24小時運轉之場合。
1 作業流程
1.1 先取得欲檢查的設備清單一覽表
1.2 設備逐筆ping ip 後,若 NG,則出力該設備訊息至LINE傳送參數檔
1.3 設備逐筆 ping ,執行結果存入result txt file
1.4 設備逐筆 ping,執行結果列出顯示於螢幕上
1.5 設備逐筆ping 後,將本次確認有NG之設備,以LINE方式即時發出訊息
1.6 上述作業JOB於windows 設定自動執行排程,以便可達到自動執行確認動作,並將有異常之設備即時自動發出LINE訊息給負責人員。
2 作業說明
2.1 讀取欲檢查確認設備,以便ping 該設備之IP
2.2 依據 ping 執行後,出現的訊息,判斷是否OK 或NG
, ping 結果訊息中若有 ms , 則OK,否者 NG
2.3 若發現NG之設備,再將該設備之訊息存放至LINE參數檔txt,以便LINE通知發出
3 實例說明
3.1 單位內欲確認機器清單,事先準備存入txt檔
本例機器清冊txt file之檔名iplist_V.txt txt 內容如下
----- ip ,設備名稱, 設備說明-----
192.168.0.1,TP-LINK, WiFi設備
192.168.0.131,TPLINK C210,辦公監視器
192.168.0.194,admin-HP,辦公HP筆電
192.168.0.199,192.168.0.199,教室監視器
192.168.0.200,EPSON26EC5F,事務印表機
192.168.0.245,DESKTOP-AD78PMN,社工桌電腦
168.95.98.254,h254.s98.ts.hinet.net,外網路設備
3.2 由上述txt file逐筆尋找,含有"." 之REC. 取出
3.3 取得 設備之ip ,執行ping ,執行結果出現有 "ms" 訊息,表示OK
ping 結果不管OK或 NG,均存入txt file,
檔名 result_ipscanLine.txt ,本例有兩個設備NG異常,內容如下
*** result of ping *** 2024/09/03 週二
Start time: 16:46:22.21
--- ip --- ---result---設備名稱 說明---
192.168.0.1--OK WiFi設備 "TP-LINK"
192.168.0.131--OK 辦公監視器 "TPLINK C210"
192.168.0.194--OK 辦公HP筆電 "admin-HP"
192.168.0.199--NG 教室監視器 "192.168.0.199"
192.168.0.200--OK 事務印表機 "EPSON26EC5F"
192.168.0.245--NG 社工桌電腦 "DESKTOP-AD78PMN"
168.95.98.254--OK 外網路設備 "h254.s98.ts.hinet.net"
-------------------------------------
Finish time: 16:46:31.70
3.4於全設備執行完後,最後於畫面上,顯示出全部設備PING執行完之結果訊息
本例有兩個設備NG異常,如下圖:
3.5 ping執行完 後,NG 設備之訊息存入LINE 傳送參數檔
(檔名 LINE_send_notify_par.txt),以便提供LINE發出訊息,本例參數檔內容如下
M,
M,*設備確認結果
M,192.168.0.199---NG 教室監視器 "192.168.0.199"
M,192.168.0.245---NG 社工桌電腦 "DESKTOP-AD78PMN"
T,iEPXCVYGWi-----your token-------uFXOgoWRPQqEal
3.6 上述執行結果,若設備有NG,將立即發出NG設備之LINE訊息
本例發出LINE參考下圖
執行結果,若設備全部正常運作,LINE發出訊息內容
"本次確認全OK"
4 運用擴展
如下場合更能發揮其效果
(1) 企業單位內重要系統之所屬設備,如伺服器,網路設備 ,不可停機之應用系統,監視器設備等
(2) 設備定期保養維護完後 或異常斷電後,必須確認所有相關設備
(3) 長假連休後 ,事先確認設備是否正常運作
(4) 颱風假或平日非上班時段,當有需要確認設備運作狀況時,不必至公司仍可確認
5 執行檔設計,如下參考
echo off
:: --- 注意 LINE_send_notify_par.txt 與bat 須同路徑
:: --- 注意 LINE_send_notify.exe 可以與bat 不同路徑
set r= NG
set LineF=N
set Path1=C:\Users\admin\Desktop\桌面資料\2024LIN
C:
cd %Path1%
echo *** result of ping *** %DATE% > result_ipscanLine.txt
echo. >> result_ipscanLine.txt
echo Start time: %TIME% >> result_ipscanLine.txt
echo --- ip --- ---result---設備名稱 說明--- >> result_ipscanLine.txt
:: --- for getting LINE send Message---
echo M,>nul > LINE_send_notify_par.txt
echo M,*設備確認結果>nul >> LINE_send_notify_par.txt
:: --- read iplist_V for doing ping--- [ %a: ip, %b:ip設備, %c:說明 ]
echo *** Job ipscanLine_V.bat 執行中...
For /f "skip=1 tokens=1-3 delims=," %%a in ('findstr "." "iplist_V.txt" ') do (
set r= NG
CALL :Ping %%a "%%b" %%c )
echo ------------------------------------->>result_ipscanLine.txt
echo Finish time: %TIME% >> result_ipscanLine.txt
type result_ipscanLine.txt
rem --- LINE_send Process ---
if %LineF%==N (echo M,** 本次確認全OK >>LINE_send_notify_par.txt )
echo T,iE----------cjLLl2zoQnwq3DuxNuFXOgoWR-----l>>LINE_send_notify_par.txt
:: --- in --- CALL D:\HTW-IT\LINEN\LINE_send_notify.exe
CALL %Path1%\LINE_send_notify.exe
echo *** Job ipscanLine_V.bat 執行完...
pause job finish ---
EXIT
:Ping
:: --- ping 執行結果,再找出其中有 =..ms 即 "最小值 = 2ms,最大值 = 4ms,平均 = 3ms"
For /f "tokens=1 delims=," %%A in ('ping -n 1 %1 ^| findstr /r "ms" ' ) do ( set r=OK )
if %r%==OK (
echo IP : %1 is OK >nul
echo %1--OK %3 %2>nul >>result_ipscanLine.txt
) else (
echo IP : %1 is NG >nul
echo %1--NG %3 %2>nul >>result_ipscanLine.txt
set LineF=Y
echo M,%1---NG %3 %2>nul >> LINE_send_notify_par.txt )
exit /b
-----by linct-----