微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查Web服务器,并且不从同一台服务器上的configuration文件parsing端口80和端口8080

今天的研究结果在这..

REF = 如何批量分析xml文件(CMD)注意:jeb中的注释有助于从xml中parsing出端口号

SET results=%CD%somelog.log IF EXIST %results% DEL %results% REM NOTE: THIS IS ALL ONE LINE!!!! ALL THE WAY DOWN TO THE PAUSE STATMENT. FOR /F "usebackq tokens=1" %%q in (`reg query \some_serverHKLMSYstemCurrentControlSetservices ^| find /i "tomcat"`) DO FOR /F "usebackq tokens=3" %%a in (`reg query \some_serverHKLMSYstemCurrentControlSetservices%%~nxq /v ImagePath`) DO FOR /F "tokens=1-2,* delims=:" %%1 IN ("%%a") DO FOR /F tokens^=1^,2^ delims^=^" %%A IN ('..grep -m 1 "<Connector port=" \some_server%%1$%%2confserver.xml') DO ECHO "CHECKING WEB PAGE CONTENT FROM URL http://some_server:%%B/server_page.htm" 1>> %results% && ..WGET -q "http://some_server:%%B/server_page.htm" -O - | ..GREP "Configuration framework is not loaded" 2>> %results% && ..WGET -q "http://some_server:%%B/server_page.htm" -O - | ..GREP "Successfully acquired a database connection" 3>> %results% pause

当前结果:结果数据是否被redirect到日志文件,但WGET与Pipe使用GREP的结果没有捕获到日志中。

已经试过了:result >> log result 1 >> log result2 2 >> log result3 3 >> log

我怎样才能在.htaccess文件中引用$ _SERVER ?

如何在apache BasicDataSource中使用encryption的密码

为什么我的PUT HTTP请求被转换为GET

如何禁用我的Linux服务器中的自动文件压缩

我如何重写PHP中的Apache 404状态?

只是在最后的结果中捕捉到ECHO命令的结果。

起点: 2014-12-05

让我们来弄清楚为什么我们没有得到服务器端口。 我已经知道了这一点,但现在我需要弄清楚如何到达第一个%serverport%。 根据要求,我已经删除了FINDSTR,并已经与GREP。

特别:

REM >> here is the problem: if we want to break out for the first port SET serverport=%%B && GOTO :BREAK) :break SET serverport=%serverport: protocol=% SET serverport=%serverport:"=%

而且是因为我们打破了脚本,因此无法继续对Apache Tomcat的二次实例:

FOR /F "tokens=1-2* delims==" %%A IN ('..grep "<Connector port=" %tpath%') DO ( SET serverport=%%B goto :break ) :break SET serverport=%serverport: protocol=% SET serverport=%serverport:"=%

所以我们来看看这里发生了什么

第1步 ,我们创build一个DEBUG批处理脚本。 这将获取Windows服务名称的服务器密钥。 例如,当您运行NET STOP tomcat6或NET START tomcat6 ..我们不希望完整的registrypath,而只是键名。 当试图确定文件系统中的文件名称时,我们可以使用相同的结构,但是这是来自registry。

echo test 1 FOR /F "usebackq tokens=1" %%q in (`reg query \some_serverHKLMSYstemCurrentControlSetservices ^| find /i "tomcat"`) DO echo %%~nxq echo end of test 1

第1步的结果,让我们看看这是什么..如果我们把tester.bat> results.txt我们看到:

D:WORKScriptstest>echo test 1 test 1 D:WORKScriptstest>FOR /F "usebackq tokens=1" %q in (`reg query \some_serverHKLMSYstemCurrentControlSetservices | find /i "tomcat"`) DO echo %~nxq D:WORKScriptstest>echo tomcat6_1 tomcat6_1 D:WORKScriptstest>echo tomcat6_2 tomcat6_2 D:WORKScriptstest>echo end of test 1 end of test 1

第2步 ,让我们看看我们开始寻找服务器端口时得到什么..注意:每个FOR线都是一条线.. FOR .. IN .. DO .. FOR .. IN .. DO .. FOR .. IN .. DO .. FOR .. IN .. DO …(是的,这四个都在一行中)

echo test 2 FOR /F "usebackq tokens=1" %%q in (`reg query \some_serverHKLMSYstemCurrentControlSetservices ^| find /i "tomcat"`) DO FOR /F "usebackq tokens=3" %%a in (`reg query \some_serverHKLMSYstemCurrentControlSetservices%%~nxq /v ImagePath`) DO FOR /F "tokens=1-2,* delims=:" %%1 IN ("%%a") DO FOR /F "tokens=1-2* delims==" %%A IN ('..grep "<Connector port=" \some_server%%1$%%2confserver.xml') DO (SET serverport=%%B) echo end of test 2 echo we are done

第2步的结果 ,让我们看看这样做..如果我们把tester.bat> results.txt我们看到:

D:WORKScriptstest>echo test 2 test 2 D:WORKScriptstest>FOR /F "usebackq tokens=1" %q in (`reg query \some_serverHKLMSYstemCurrentControlSetservices | find /i "tomcat"`) DO FOR /F "usebackq tokens=3" %a in (`reg query \some_serverHKLMSYstemCurrentControlSetservices%~nxq /v ImagePath`) DO FOR /F "tokens=1-2,* delims=:" %1 IN ("%a") DO FOR /F "tokens=1-2* delims==" %A IN ('..grep "<Connector port=" \some_server%1$%2confserver.xml') DO (SET serverport=%B ) D:WORKScriptstest>FOR /F "usebackq tokens=3" %a in (`reg query \some_serverHKLMSYstemCurrentControlSetservicestomcat6_1 /v ImagePath`) DO FOR /F "tokens=1-2,* delims=:" %1 IN ("%a") DO FOR /F "tokens=1-2* delims==" %A IN ('..grep "<Connector port=" \some_server%1$%2confserver.xml') DO (SET serverport=%B ) D:WORKScriptstest>FOR /F "tokens=1-2,* delims=:" %1 IN ("d:tomcat_1bintomcat6.exe") DO FOR /F "tokens=1-2* delims==" %A IN ('..grep "<Connector port=" \some_server%1$%2confserver.xml') DO (SET serverport=%B ) D:WORKScriptstest>FOR /F "tokens=1-2* delims==" %A IN ('..grep "<Connector port=" \some_serverd$tomcat_1confserver.xml') DO (SET serverport=%B ) D:WORKScriptstest>(SET serverport="80" protocol ) D:WORKScriptstest>(SET serverport="8443" protocol ) D:WORKScriptstest>(SET serverport="8009" protocol ) D:WORKScriptstest>FOR /F "usebackq tokens=3" %a in (`reg query \some_serverHKLMSYstemCurrentControlSetservicestomcat6_2 /v ImagePath`) DO FOR /F "tokens=1-2,* delims=:" %1 IN ("d:tomcat_2bintomcat6.exe") DO FOR /F "tokens=1-2* delims==" %A IN ('..grep "<Connector port=" \some_server%1$%2confserver.xml') DO (SET serverport=%B ) D:WORKScriptstest>FOR /F "tokens=1-2* delims==" %A IN ('..grep "<Connector port=" \some_serverd$tomcat_2confserver.xml') DO (SET serverport=%B ) D:WORKScriptstest>(SET serverport="8080" protocol ) D:WORKScriptstest>(SET serverport="8443" protocol ) D:WORKScriptstest>(SET serverport="8010" protocol ) D:WORKScriptstest>echo end of test 2 end of test 2 D:WORKScriptstest>echo we are done we are done

我只想要服务器端口的第一个实例。

该服务器有两个tomcat实例:端口80端口8080

如果只是这一台服务器,那很简单,但我有30台服务器要报告。

embedded式Tomcat不提供静态内容

为什么PHP开发人员不能提供每个线程范围的setlocale函数

Apache重写保留查询string

什么是redirect://在PATH_TRANSLATED中?

Tomcat在错误报告中没有显示完整的堆栈跟踪,以确认HTTP状态500错误

好。 我很确定,我可以为此创建一个答案。 使用嵌套的FOR..IN..DO结构四次,我认为这就是为什么我不能运行WGET,只有第一个ECHO工作。下面是我们在这代码的位置。

REF 如何批量分析xml文件(CMD) 注意:来自@jeb的评论帮助从xml解析出端口号

SET servers=%CD%monitored_computers.txt SET results=%CD%somelog.log IF EXIST %results% DEL %results% FOR /f "tokens=2-8 delims=.:/ " %%a IN ("%date% %time: =0%") DO ECHO PROCESS CHECK STARTED %%a/%%b/%%c %%d:%%e:%%f.%%g >> %results% FOR /F "tokens=1-2* delims=," %%A IN (%servers%) DO ( REM NOTE: THIS IS ALL ONE LINE!!!! ALL THE WAY DOWN TO THE PAUSE STATMENT. FOR /F "usebackq tokens=1" %%q in (`reg query \%%AHKLMSYstemCurrentControlSetservices ^| find /i "tomcat"`) DO FOR /F "usebackq tokens=3" %%a in (`reg query \%%AHKLMSYstemCurrentControlSetservices%%~nxq /v ImagePath`) DO FOR /F "tokens=1-2,2^ delims^=^" %%H IN ('..grep -m 1 "<Connector port=" \%%A%%1$%%2confserver.xml') DO ECHO "http://%%A:%%I/some_page.htm" >> %CD%servers.txt pause )

希望这有助于某人。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐