window bat 检查网站并重启 coldfusion
window bat to check website and restart coldfusion
我是 bat 脚本的新手。我想要下面的脚本来检查网络是否启动,如果没有启动 coldfusion 并将所有信息保存到日志文件中。
@REM Remove any existing files.
del C:\Users\Administrator\check.txt
@REM to download file
wget -O check.txt --no-check-certificate https://10.2.3.30/ebanking/ch/en-en/index.cfm
@REM Search for the term in the previously downloaded file.
FINDSTR /C:"index.cfm" check.txt
if errorlevel equ 1 notfound
found
cls
:notfound
echo notfound > log.txt
echo stopping ebanking >> log.txt
call C:\ColdFusion10\cfusion\bin\cfstop.bat
echo starting ebanking >> log.txt
call C:\ColdFusion10\cfusion\bin\cfstart.bat
cls
exit
:found
echo found >> log.txt
cls
exit
您错过了标签 notfound
的 goto
命令。对于逻辑,我在 notfound/found
之间交换了标签
@echo off
pushd "C:\Users\Administrator"
@REM Remove any existing files.
del check.txt
@REM to download file
wget -O check.txt --no-check-certificate https://10.2.3.30/ebanking/ch/en-en/index.cfm
@REM Search for the term in the previously downloaded file.
FINDSTR /C:"index.cfm" check.txt
if errorlevel equ 1 (goto notfound)
:found
echo found >> log.txt
exit /b 0
:notfound
echo notfound > log.txt
echo stopping ebanking >> log.txt
call C:\ColdFusion10\cfusion\bin\cfstop.bat
echo starting ebanking >> log.txt
call C:\ColdFusion10\cfusion\bin\cfstart.bat
exit
您可以将代码简化为以下循环
@echo off
set "someurl=https://10.2.3.30/ebanking/ch/en-en/index.cfm"
:loop
wget --server-response -nv --spider %someurl% 2>&1 | find "HTTP/1.1 200 OK">nul
if errorlevel 1 (
echo %DATE% %TIME%: stopping ebanking>> log.txt
call C:\ColdFusion10\cfusion\bin\cfstop.bat
timeout 5>nul
echo %DATE% %TIME%: starting ebanking>> log.txt
call C:\ColdFusion10\cfusion\bin\cfstart.bat
) else (
echo %DATE% %TIME%: site is up>> log.txt
)
rem Wait 1 hour before loop
timeout 3600
goto loop
我是 bat 脚本的新手。我想要下面的脚本来检查网络是否启动,如果没有启动 coldfusion 并将所有信息保存到日志文件中。
@REM Remove any existing files.
del C:\Users\Administrator\check.txt
@REM to download file
wget -O check.txt --no-check-certificate https://10.2.3.30/ebanking/ch/en-en/index.cfm
@REM Search for the term in the previously downloaded file.
FINDSTR /C:"index.cfm" check.txt
if errorlevel equ 1 notfound
found
cls
:notfound
echo notfound > log.txt
echo stopping ebanking >> log.txt
call C:\ColdFusion10\cfusion\bin\cfstop.bat
echo starting ebanking >> log.txt
call C:\ColdFusion10\cfusion\bin\cfstart.bat
cls
exit
:found
echo found >> log.txt
cls
exit
您错过了标签 notfound
的 goto
命令。对于逻辑,我在 notfound/found
@echo off
pushd "C:\Users\Administrator"
@REM Remove any existing files.
del check.txt
@REM to download file
wget -O check.txt --no-check-certificate https://10.2.3.30/ebanking/ch/en-en/index.cfm
@REM Search for the term in the previously downloaded file.
FINDSTR /C:"index.cfm" check.txt
if errorlevel equ 1 (goto notfound)
:found
echo found >> log.txt
exit /b 0
:notfound
echo notfound > log.txt
echo stopping ebanking >> log.txt
call C:\ColdFusion10\cfusion\bin\cfstop.bat
echo starting ebanking >> log.txt
call C:\ColdFusion10\cfusion\bin\cfstart.bat
exit
您可以将代码简化为以下循环
@echo off
set "someurl=https://10.2.3.30/ebanking/ch/en-en/index.cfm"
:loop
wget --server-response -nv --spider %someurl% 2>&1 | find "HTTP/1.1 200 OK">nul
if errorlevel 1 (
echo %DATE% %TIME%: stopping ebanking>> log.txt
call C:\ColdFusion10\cfusion\bin\cfstop.bat
timeout 5>nul
echo %DATE% %TIME%: starting ebanking>> log.txt
call C:\ColdFusion10\cfusion\bin\cfstart.bat
) else (
echo %DATE% %TIME%: site is up>> log.txt
)
rem Wait 1 hour before loop
timeout 3600
goto loop