marcimarc85
Goto Top

Webseite inkl. Port Abfragen per batch

Hallo,

Ich möchte gern den Inhalt einer Webseite (127.0.0.1:8085) abfragen.
Hintergrund.: Wenn die Webseite nicht erreichbar ist (wegen Wartungsarbeiten) läuft eine zweite Tomcat Instanz mit einer Wartungswebseite. Nun möchte ich ein Batch Script laufen lassen, dass o.A. IP inkl diesem Port so lange (alle 10 sekunden) prüft und wenn diese erreichbar ist, den Wartungsdienst stoppt und den regulären Tomcat Dienst wieder startet.
Ich weiß nicht, wie ich die Abfrage realisieren soll. Wenn die Webseite unter dem Port erreichbar ist, gibt sie lediglich

<!doctype html><html><body><h1>403 Forbidden</h1></body></html>

im Seitenquelltext bzw "403 Forbidden" auf der Seite direkt aus.
Kann man das irgendwie per batch abfragen? Ansonsten reicht auch einfach nur die Erreichbarkeit der Seite zu prüfen. Damit wäre mir schon sehr geholfen. Momentan stehe ich da echt etwas auf dem Schlauch.
Danke schonmal.

Content-ID: 666737

Url: https://administrator.de/forum/webseite-inkl-port-abfragen-per-batch-666737.html

Ausgedruckt am: 03.04.2025 um 08:04 Uhr

SlainteMhath
SlainteMhath 14.05.2021 um 13:58:15 Uhr
Goto Top
Moin,

den Inhalt der Website kannst du per wget oder curl abfragen und temporär auf Platte schreiben und/oder per grep oder awk auswerten und dann den anderen Tomcat entsprechend starten/stoppen

lg,
Slainte
wiesi200
wiesi200 14.05.2021 um 14:42:54 Uhr
Goto Top
Hallo,

rein Theoretisch könntest du auch einen Reverse Proxy davor schalten, was auch andere Vorteile bringt, und ein entsprechendes Error Handling einbauen.

Ist aber nur ein Gedanke und nicht getestet.
manuel-r
manuel-r 14.05.2021 aktualisiert um 15:17:37 Uhr
Goto Top
Mit
(invoke-webrequest -uri "127.0.0.1:8085).statuscode  
sollte das kein Problem sein. Noch ein bisschen if, ein Quäntchen start-sleep und eine Prise do while|until fertig ist das Script.

Manuel

Edit:
Und natürlich je nach Bedarf noch etwas start-service oder stop-service dazugeben.
148121
148121 14.05.2021 aktualisiert um 16:45:24 Uhr
Goto Top
Würde ich zwar auch mit nem ReverseProxy abfackeln (der macht das mit Wartungsseite automatisch bei Nichterreichbarkeit des Backends) aber wenn du unbedingt willst ... PS bsp.
$result = $null
while($true){
    try{
        $result = iwr 'http://127.0.0.1:8085' -TimeoutSec 2 -EA Stop  
    }catch{}
    if($result.StatusCode -eq 403){
        while ((gsv "Wartungsdienst").Status -ne "Stopped"){  
            spsv -Name "Wartungsdienst" -Force  
        }
        sasv -Name "BlaBlubTomcat"  
        break
    }
    sleep 10
}
Gruß w.
erikro
erikro 14.05.2021 um 16:05:08 Uhr
Goto Top
Moin,

wenn ich das richtig verstanden habe, dann reicht es, dass geprüft wird, ob der Port offen ist. Das kannst Du entweder unter Windows mit tcping oder unter Linux mit netcat machen. In beiden Fällen ist der errorlevel 0, wenn er offen, und 1, wenn er geschlossen ist.

hth

Erik
mbehrens
mbehrens 14.05.2021 um 17:40:46 Uhr
Goto Top
Zitat von @MarciMarc85:

Hallo,

Ich möchte gern den Inhalt einer Webseite (127.0.0.1:8085) abfragen.

Kann man das irgendwie per batch abfragen? Ansonsten reicht auch einfach nur die Erreichbarkeit der Seite zu prüfen. Damit wäre mir schon sehr geholfen. Momentan stehe ich da echt etwas auf dem Schlauch.

Nutze Test-NetConnection und prüfe das Ergebnis von TcpTestSucceeded.