[解決済み] bash/shellスクリプトからhttp応答コードを評価する方法は?
質問
当たり前のことを見逃しているような気がするのですが、成功したことがありません。
man [curl|wget]
やgoogle("http"は、このような悪い検索用語になります)。私は、頻繁にエラーメッセージとともにステータスコード500を返して失敗するウェブサーバの1つについて、迅速かつamp;dirtyな修正方法を探しています。一度このような状態になると、再起動する必要があります。
根本的な原因を見つけるのは難しいようなので、本当に直せるまでのつなぎとして、迅速な修正を目指します(サービスには高可用性は必要ありません)。
提案された解決策は、5分ごとに実行されるcronジョブを作成し、そのチェックで http://localhost:8080/ . これがステータスコード500で返ってきた場合、Webサーバーを再起動します。サーバーは1分以内に再起動するので、すでに実行されている再起動を確認する必要はありません。
問題のサーバーはubuntu 8.04のミニマルインストールで、現在必要なものを動かすのに十分なパッケージがインストールされているだけです。bashでタスクを実行するという難しい条件はありませんが、このようなミニマルな環境でも、これ以上インタプリタをインストールせずに実行できるようにしたいです。
(httpのステータスコードを環境変数に代入するコマンド/オプションがあれば十分で、スクリプトには十分精通しています。これは、探したのですが見つかりませんでした)。
解決方法は?
500のコードではテストしていませんが、200、302、404などの他のコードでは動作します。
response=$(curl --write-out '%{http_code}' --silent --output /dev/null servername)
なお、--writeoutで指定する書式は引用符で囲む必要があります。
ibai さんの提案のように
--head
で、HEADのみのリクエストにします。これは、ページの内容が送信されないので、検索が成功したときの時間を節約することができます。
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
multipart/form-data と application/octet-stream, application/x-www-form-urlencoded の違いについて
-
[解決済み] HTTPポストで文字+が%2Bに変換される
-
[解決済み] HTTPの "Host "ヘッダーとは何ですか?
-
[解決済み] [Solved] リクエストに必須パラメータがない場合、どのようなHTTPステータスレスポンスコードを使用すればよいですか?
-
[解決済み】URI、URL、URNの違いは何ですか?[重複] URIとURLとURNの違いは何ですか?
-
[解決済み】302と307のリダイレクトの違いは何ですか?
-
[解決済み】CURL コマンドライン URL パラメータ
-
[解決済み】http getリクエストにヘッダーを設定する方法は?
-
[解決済み] HTTPのPOSTメソッドをキャッシュすることは可能ですか?
-
[解決済み] URLのプロトコルを継承するために、先頭のダブルスラッシュを使用することに何か不都合はありますか? 例:src="//domain.com"