cURLを使用していくつかのWebサイトとメールサーバーを監視するための小さなbashスクリプトを作成しました。
HTTPステータスコードと終了コードを確認します。しかし、cURLの実際のエラーメッセージも含めたいと思います。それらをどのように組み合わせることができるかはわかりません。
次のコードは現在私が持っているコードです。
RESPONSE=$(curl --location --head --silent --output /dev/null --write-out '%{response_code}' nohosthere.com ; echo " $?")
R=( $RESPONSE )
CODE="${R[0]}"
EXIT="${R[1]}"
if [ $CODE -eq 200 ]; then
echo 'Ok'
else
echo "Response: ${RESPONSE}"
echo "Code: ${CODE}"
echo "Exit: ${EXIT}"
#echo "MESSAGE I WANT HERE curl: (6) Could not resolve host: nohosthere.com"
fi
私が追加したとき-- 表示エラー直接印刷されます。ファイルやリポジトリにリダイレクトできますが、すべて一緒に保存する場所がわかりません。
--write_outに似たものがあることを知っています。%{間違った情報}そして%{終了コード}ただし、私のテストシステム(macOS 10.15)とAWS Lightsailサーバーではどちらも使用できません。
答え1
RESPONSE=$(...)
それでは直接(終わりには何もないecho $?
)はどうでしょうかEXIT=$?
?
このために配列を使用する必要はありません。$RESPONSE
含める出力には終了コードが含まcurl
れます。$EXIT