0
votes

Comment puis-je faire fonctionner ce vérificateur de site en ligne?

Je crée un vérificateur de site en ligne (vous dit s'il est en haut ou en bas) avec CURL sur Windows, mais cela ne semble pas fonctionner.

J'ai essayé de créer un script simple sur Windows. Premièrement, je vérifie Google avec la redirection de CURL et de sortie dans le fichier StatutGoogle.txt. Ensuite, je demande à FindStr de trouver la phrase "Connexion établie". Cela signifie que le site Web est en place. Code d'erreur 0 pour Findstr signifie qu'il a trouvé ce qu'il cherchait. Donc, si cela a trouvé ce qu'il cherchait, je reçois un message "site est up". Si cela ne trouve pas, je reçois un code d'erreur différent, de sorte que le message soit "Site". P>

Le problème est: Je reçois les deux messages. J'ai déjà essayé d'utiliser si% errorlevel%%, mais cela n'a pas fonctionné aussi. P>

En outre, je voudrais un code avec plusieurs sites Web car je crée un script BAT qui vérifie en réalité environ 9 ou 10 site Web à la fois. P>

curl -i http://www.google.com/ 1> statusgoogle.txt
findstr /c:"Connection established" statusgoogle.txt
if errorlevel 0 (GOTO :upwarning) else (GOTO :downwarning)
:upwarning
echo site up
:downwarning
echo site down


1 commentaires

En outre, je ne suis pas disposé à utiliser Ping car cela ne fonctionne pas dans mon cas car plusieurs sites Web fonctionnant sur le même serveur avec la même adresse IP. Quelque chose comme: site1.domain.com, site2.domain.com, site3.domain.com


3 Réponses :


1
votes

Le problème est qu'après que vous sautez sur "Upwarning", le reste de votre code sera toujours exécuté. Vous devez mettre fin au script après "ECHO SITE UP":

curl -i http://www.google.com/ 1> statusgoogle.txt
findstr /c:"Connection established" statusgoogle.txt
if errorlevel 0 (GOTO :upwarning) else (GOTO :downwarning)
:upwarning
echo site up
goto :EOF
:downwarning
echo site down


2 commentaires

Ça ne fonctionne pas complètement. Maintenant, cela ne montre que "site up", quel que soit le site / la page Web. Peut-être que Findstr n'a pas de code d'erreur / retour. Toute suggestion, personnes?


Avec Trouver, j'ai les mêmes résultats. Les codes de retour ne fonctionnent pas.



2
votes

L'un des malentendus du classique si errorlevel 0 commande,
qui se traduit par (voir aide si) xxx

qui est toujours vrai pour des graves graves positives.

soit

  • vérifier si errorLEVEL 1 et inverser la logique
    Si ErrorLevel 1 (Goto: Downwarning) Autres (Goto: Upwarning)
  • Vérification de la valeur actuelle de % errorLelvel%
    Si% ERRORLEVEL% == 0 (goto: upwarning) Autres (goto: Downwarning)
  • Utilisez une exécution conditionnelle sur le succès / échec && / ||
    xxx

1 commentaires

Le problème était également le manque de goto: EOF entre la mise en état et la diminution de la masse inférieure.



0
votes

Si vous êtes capable d'utiliser Powershell, il est assez facile.

try {
    Invoke-WebRequest "http://www.hp.com" | Out-Null
    "Web site is up"
} catch {
    "Web site is not up"
}


0 commentaires