[Windows] Apache自動監測重啟腳本 (內附圖文範例:phpStudy) by Zerolocus&pratnket

(圖1)

一個簡單監控 Apache httpd Server的Shell腳本,如果發現httpd常常掛掉,該shell可以自動重啟 apache

搭配工具:curl.exe (https://curl.haxx.se/windows/) (圖2)

備註:內有原始碼,不放心的人可以自己編譯成執行檔。

@ECHO OFF

:: 宣告屬性區域
::網址
set chkWeb=http://127.0.0.1/robots.txt
::Apache
set srvname="Apache"
::MySQLa
set srvMysql="MySQLa"
::每60秒偵測一次
set secs=60
::先啟動MySQLa,只啟動一次
::net start %srvMysql%

::說明
echo.
echo ========================================
echo ==     查詢Apache服務的狀態     ==
echo ==   每間隔%secs%秒鐘進行一次查詢   ==
echo ==   如發現其停止,則立即啟動     ==
echo ==   By Zerolocus or pratnket    ==
echo ========================================
echo.

:: 標記 start , goto專用
:start
:: 等待秒數
timeout %secs%
:: 模擬訪問 chkWeb 並產生 cache.txt
curl -o cache.txt %chkWeb%

:: EQU - 等於
:: NEQ - 不等於
:: LSS - 小於
:: LEQ - 小於或等於
:: GTR - 大於
:: GEQ - 大於或等於
:: 0 = success | 1 = errH
if %errorlevel% EQU 0 goto success
if %errorlevel% NEQ 0 goto errH

::結果 0 則寫入 Server is OK 寫進去 logs.txt 筆記本
:success
echo %date% %time%: "Server is OK" >> logs.txt
goto start

:: 標記 errH , goto專用
:errH
:: 停止Apache 服務
net stop %srvname%
:: 啟動Apache 服務
net start %srvname%
timeout %secs%
echo %date% %time%: error Code:%errorlevel% >> logs.txt
goto start

pause

補充說明: 如果你是使用整合安裝包(phpStudy、Xampp)來安裝,請注意是否有安裝此服務(Apache、Mysqla)

舉例:phpStudy

(圖3)

運行模式:需要使用系統服務,即可直接使用你自身所安裝的服務了

(圖4)

(圖5)

文章作者: Zerolocus
文章鏈接: https://pratnket.github.io/2019/02/26/windows-script/
版權聲明: 本博客所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 チェンのログ – ゲームを作って生きていきたいブログ