bat 檢測應用是否可用並且郵件通知

@echo off
rem setlocal是批處理本地化的一種操作,在執行setlocal之後所做的環境改動只限於批處理文件
rem ENABLEDELAYEDEXPANSION 啓用變量延遲,直到出現匹配的endlocal命令
SETLOCAL ENABLEDELAYEDEXPANSION

rem rem的意思是註釋
rem 鏈接
set URL=“http://localhost:8080/ShipSuiteWeb/bi/index.htm
rem 日誌文件的路徑
set LOG_PATH=D:\check.log
rem 每次檢測完後等待時間,再進行下一次檢測,若將程序部署到系統計劃任務,可忽略
set TIME_WAIT=30
rem 郵件發送工具安裝目錄
set blat_Home=“E:\blat3219\full”
rem SMTP地址
set SMTP_HOST=“172.32.234.222”
rem 郵件發送用戶名
set MAIL_SENDER=“simp”
rem 郵件發送密碼
set MAIL_SENDER_PASSWORD=“password”

set SUBJECT=“生產服務器GlassFish已停止,請及時處理。”

rem echo string:將字符串顯示在屏幕中
rem :loop 和下面的goto組合成循環
:loop
rem 設置變量http狀態碼
set httpcode=0
rem 打印時間
echo %date% %time%
rem 在屏幕上打印執行狀態
echo ‘begin checking tomcat’

rem 將記錄保存在日誌文件中
rem 循環
rem FOR [參數] %%變量名 IN (相關文件或命令) DO 執行的命令
rem 其中參數有/d /l /r /f
rem 參數 /d (參數只能顯示當前目錄下的目錄名字)
rem 參數 /R (搜索指定路徑及所有子目錄中與set相符合的所有文件)
rem 參數 /L (該集表示以增量形式從開始到結束的一個數字序列。可以使用負的 Step)
rem 參數 /F (使用文件解析來處理命令輸出、字符串及文件內容。)
rem (相關文件或命令)指定一個或一組文件。可以使用通配符
for /l %%i in (1,1,20) do (
echo %%i
rem 藉助工具獲得項目的狀態頭(curl工具的安裝會在下面提及)
for /f “delims=” %%r in (‘curl -sL -w “%%{http_code}” %URL% -o /dev/null’) do (
rem 將變量r的值賦值給httpcode
set httpcode=%%r
if !httpcode!==200 (
GOTO :OUTFOR
)
)
)

:OUTFOR
echo %httpcode%

if not %httpcode%==200 (
echo %date% %time% Dynamic stop >>%LOG_PATH%
echo %date% %time% send emails >>%LOG_PATH%
rem 切換到blat安裝目錄
cd /d %blat_Home%
rem blat -install %SMTP_HOST% %MAIL_SENDER%
rem blat body.txt -to %MAIL1%,%MAIL2% -u %MAIL_SENDER% -pw %MAIL_SENDER_PASSWORD% -subject %SUBJECT%
blat -install 172.32.234.222 simp
blat body.txt -to [email protected], [email protected] -u “%MAIL_SENDER%” -pw “%MAIL_SENDER_PASSWORD%” -subject “%SUBJECT%”
echo %date% %time% success to send emails
echo %date% %time% success to send emails >>%LOG_PATH%
) else (
echo the application is running
echo %date% %time% the application is running>>%LOG_PATH%
)
timeout -t 3 >nul
timeout -t %TIME_WAIT% >nul
goto loop

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章