サービスの特定のURLを呼び出して、サービスのヘルスチェックを実行したいと思います。最も簡単な解決策は、cronを使用して1分ごとにチェックを行うことだと思います。エラーが発生した場合、cronからメールが送信されます。
これにcUrlを使用してみましたが、エラーが発生した場合にのみメッセージを出力することができません。出力を/dev/ nullに転送しようとすると、進行状況レポートが出力されます。
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5559 100 5559 0 0 100k 0 --:--:-- --:--:-- --:--:-- 106k
カールのオプションを調べてみましたが、成功した場合は無音にし、エラーの場合はノイズを発生させたいという状況に適したものが見つかりません。
カールに私が望むことをさせる方法はありますか、それとも私が見なければならない他のツールがありますか?
承認された回答:
-sSf
はどうですか ?マニュアルページから:
-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).
例:
curl -sSf http://example.org > /dev/null