Ich möchte eine Zustandsprüfung eines Dienstes durchführen, indem ich eine bestimmte URL darauf aufrufe. Fühlt sich an, als wäre die einfachste Lösung, cron zu verwenden, um die Überprüfung jede Minute oder so durchzuführen. Bei Fehlern sendet mir cron eine E-Mail.
Ich habe versucht, cUrl dafür zu verwenden, aber ich kann es nicht dazu bringen, Nachrichten nur bei Fehlern auszugeben. Wenn ich versuche, die Ausgabe an /dev/null zu richten, wird ein Fortschrittsbericht ausgegeben.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5559 100 5559 0 0 100k 0 --:--:-- --:--:-- --:--:-- 106k
Ich habe versucht, die Curl-Optionen zu durchsuchen, aber ich kann einfach nichts finden, das zu der Situation passt, in der Sie möchten, dass es bei Erfolg stumm bleibt, aber bei Fehlern Lärm macht.
Gibt es eine Möglichkeit, Curl dazu zu bringen, das zu tun, was ich will, oder gibt es ein anderes Tool, das ich mir ansehen sollte?
Akzeptierte Antwort:
Was ist mit -sSf
? Aus den Manpages:
-s/--silent Silent or quiet mode. Do not show progress meter or error messages. Makes Curl mute. -S/--show-error When used with -s it makes curl show an error message if it fails. -f/--fail (HTTP) Fail silently (no output at all) on server errors. This is mostly done to better enable scripts etc to better deal with failed attempts. In normal cases when a HTTP server fails to deliver a document, it returns an HTML document stating so (which often also describes why and more). This flag will prevent curl from outputting that and return error 22. This method is not fail-safe and there are occasions where non-successful response codes will slip through, especially when authentication is involved (response codes 401 and 407).
Zum Beispiel:
curl -sSf http://example.org > /dev/null