動かざることバグの如し

近づきたいよ 君の理想に

curlループでHTTPステータスを監視するワンライナースクリプト

環境

やりたいこと

何か作業する際に、ダウンタイムが発生していないか確認し続けたい。

コマンド

while true; do echo -n "$(date +'%H:%M:%S') Status: "; curl -s -o /dev/null -w "%{http_code}\n" --max-time 1 https://example.com/; sleep 0.5; done

実行するとこんな感じになる

23:50:47 Status: 200
23:50:48 Status: 200
23:50:48 Status: 200
23:50:49 Status: 200

オプションの解説

  • -s: 進捗バーやエラーメッセージを非表示にしてログをすっきりさせる
  • -o /dev/null: レスポンスボディを破棄し、標準出力には何も出さない
  • -w "%{http_code}\n": 指定フォーマットでHTTPステータスコードだけを出力する
  • --max-time 1: リクエスト全体のタイムアウトを1秒に制限