3

我的问题是 ping 不会告诉我网站是启动还是关闭。我需要知道网站是打开还是关闭。如果它没有重新启动脚本。如果有人可以帮助我,那就太棒了。

我唯一能想到的就是抓取网站的内容并查看它是否启动。

我想用 Apache Tomcat 在服务器上运行它。

@echo off


:first
PING -n 5 google.com | FIND "TTL" > nul
IF %errorlevel% == 0 (
echo Website is up. 
goto :first
) ELSE (
echo Website is down. Restarting service
goto :second
echo restart
echo ping
)


:: This calls the second loop
:second

:: This will stop the service
net stop TapiSrv 

ping -n 10 127.0.0.1 

:: This will start the service
net start TapiSrv

:: This check to see if the website is up
GOTO :first
4

3 回答 3

3

我把它拼凑在一起——它在 Win 8 中工作。

请注意,它会告诉您网站是否以消息响应 - 它不会检查它所服务的页面是正常操作页面还是错误消息。

@echo off
if "%~1"=="" (
echo %0 www.url.com
echo Checks the status of the URL
pause
goto :EOF
)


 >"%temp%\geturl.vbs" echo Set objArgs = WScript.Arguments
>>"%temp%\geturl.vbs" echo url = objArgs(0)
>>"%temp%\geturl.vbs" echo pix = objArgs(1)
>>"%temp%\geturl.vbs" echo With CreateObject("MSXML2.XMLHTTP")
>>"%temp%\geturl.vbs" echo .open "GET", url, False
>>"%temp%\geturl.vbs" echo .send
>>"%temp%\geturl.vbs" echo a = .ResponseBody
>>"%temp%\geturl.vbs" echo End With
>>"%temp%\geturl.vbs" echo With CreateObject("ADODB.Stream")
>>"%temp%\geturl.vbs" echo .Type = 1 'adTypeBinary
>>"%temp%\geturl.vbs" echo .Mode = 3 'adModeReadWrite
>>"%temp%\geturl.vbs" echo .Open
>>"%temp%\geturl.vbs" echo .Write a
>>"%temp%\geturl.vbs" echo .SaveToFile pix, 2 'adSaveCreateOverwrite
>>"%temp%\geturl.vbs" echo .Close
>>"%temp%\geturl.vbs" echo End With


cscript /nologo "%temp%\geturl.vbs" http://%1 url.htm 2>nul 
if not exist url.htm (
echo site is down or access is denied
) else (
for %%a in (url.htm) do if %%~za GTR 0 echo site is up
del url.htm
)
del "%temp%\geturl.vbs"
pause
于 2013-05-12T22:41:40.027 回答
1

尝试unixutilsGnuWin32wget中的程序,例如:

wget --timeout=5 --tries=1 --quiet --spider http://google.com >nul 2>&1 && echo site is up || echo site is down

wget 选项和参数:

GNU Wget 1.8.2,一个非交互式网络检索器。
用法:wget [选项]... [URL]...

多头期权的强制性参数对于空头期权也是强制性的。

启动:
  -V, --version 显示 Wget 的版本并退出。
  -h, --help 打印此帮助。
  -b, --background 启动后进入后台。
  -e, --execute=COMMAND 执行 `.wgetrc' 风格的命令。

记录和输入文件:
  -o, --output-file=FILE 将消息记录到 FILE。
  -a, --append-output=FILE 将消息附加到 FILE。
  -d, --debug 打印调试输出。
  -q, --quiet 安静(无输出)。
  -v, --verbose 是详细的(这是默认值)。
  -nv, --non-verbose 关闭冗长,而不是安静。
  -i, --input-file=FILE 在 FILE 中找到的下载 URL。
  -F, --force-html 将输入文件视为 HTML。
  -B, --base=URL 将 URL 附加到 -F -i 文件中的相对链接。
       --sslcertfile=FILE 可选客户端证书。
       --sslcertkey=KEYFILE 此证书的可选密钥文件。
       --egd-file=文件 EGD 套接字的文件名。

下载:
       --bind-address=ADDRESS 绑定到本地主机上的 ADDRESS(主机名或 IP)。
  -t, --tries=NUMBER 将重试次数设置为 NUMBER(0 个无限制)。
  -O -​​-output-document=FILE 将文档写入 FILE。
  -nc, --no-clobber 不要破坏现有文件或使用 .# 后缀。
  -c, --continue 继续获取部分下载的文件。
       --progress=TYPE 选择进度表类型。
  -N, --timestamping 不重新检索文件,除非比本地文件新。
  -S, --server-response 打印服务器响应。
       --spider 不下载任何东西。
  -T, --timeout=SECONDS 将读取超时设置为 SECONDS。
  -w, --wait=SECONDS 在检索之间等待 SECONDS。
       --waitretry=SECONDS 在一次检索的重试之间等待 1...SECONDS。
       --random-wait 在检索之间等待 0...2*WAIT 秒。
  -Y, --proxy=on/off 打开或关闭代理。
  -Q, --quota=NUMBER 将检索配额设置为 NUMBER。
       --limit-rate=RATE 将下载速率限制为 RATE。

目录:
  -nd --no-directories 不创建目录。
  -x, --force-directories 强制创建目录。
  -nH, --no-host-directories 不创建主机目录。
  -P, --directory-prefix=PREFIX 将文件保存到 PREFIX/...
       --cut-dirs=NUMBER 忽略 NUMBER 个远程目录组件。

HTTP 选项:
       --http-user=USER 将 http 用户设置为 USER。
       --http-passwd=PASS 设置 http 密码为 PASS。
  -C, --cache=on/off (dis) 允许服务器缓存数据(通常允许)。
  -E, --html-extension 保存所有带有 .html 扩展名的 text/html 文档。
       --ignore-length 忽略“Content-Length”标头字段。
       --header=STRING 在标题中插入 STRING。
       --proxy-user=USER 将 USER 设置为代理用户名。
       --proxy-passwd=PASS 将 PASS 设置为代理密码。
       --referer=URL 在 HTTP 请求中包含 `Referer: URL' 标头。
  -s, --save-headers 将 HTTP 标头保存到文件中。
  -U, --user-agent=AGENT 标识为 AGENT 而不是 Wget/VERSION。
       --no-http-keep-alive 禁用 HTTP keep-alive(持久连接)。
       --cookies=off 不使用cookies。
       --load-cookies=FILE 在会话之前从 FILE 加载 cookie。
       --save-cookies=FILE 会话结束后将 cookie 保存到 FILE。

FTP 选项:
  -nr, --dont-remove-listing 不删除“.listing”文件。
  -g, --glob=on/off 打开或关闭文件名通配。
       --passive-ftp 使用“被动”传输模式。
       --retr-symlinks 递归时,获取链接到文件(不是目录)。

递归检索:
  -r, --recursive recursive web-suck -- 小心使用!
  -l, --level=NUMBER 最大递归深度(inf 或 0 表示无限)。
       --delete-after 下载后在本地删除文件。
  -k, --convert-links 将非相对链接转换为相对链接。
  -K, --backup-converted 在转换文件 X 之前,备份为 X.orig。
  -m,--mirror 快捷方式选项等效于 -r -N -l inf -nr。
  -p, --page-requisites 获取显示 HTML 页面所需的所有图像等。

递归接受/拒绝:
  -A, --accept=LIST 逗号分隔的已接受扩展列表。
  -R, --reject=LIST 逗号分隔的被拒绝扩展列表。
  -D, --domains=LIST 接受域的逗号分隔列表。
       --exclude-domains=LIST 以逗号分隔的被拒绝域列表。
       --follow-ftp 跟随 HTML 文档中的 FTP 链接。
       --follow-tags=LIST 逗号分隔的 HTML 标签列表。
  -G, --ignore-tags=LIST 逗号分隔的忽略 HTML 标记列表。
  -H, --span-hosts 递归时转到外部主机。
  -L, --relative 仅遵循相对链接。
  -I, --include-directories=LIST 允许的目录列表。
  -X, --exclude-directories=LIST 排除目录列表。
  -np, --no-parent 不上升到父目录。
于 2013-05-12T19:28:23.337 回答
0

您可以servlet在 Web 应用程序上拥有一个或“php”,它可以打印简单的文本,如“正在运行”或“当前时间”……您可以在 HTTPCLient(Java) 或其他方式的帮助下点击该 URl,并检查它是否启动或不是。

于 2013-05-12T19:03:03.993 回答