ウェブサイトが動作しているかのチェックをしたい
たくさんのウェブサイトを運営していると、どのサイトがダウンしたかどうかを管理するのは大変です。
どのサイトが動いていて、どのサイトが落ちているのかを一元管理できたら楽なので、
死活管理ツールを作ってみました。
const URL = 'https://kazukichi0914.hatenablog.com/'; // 監視したいサイトのURL const EMAIL = '****************@gmail.com'; // エラーを知らせるメールアドレス function main() { if(isUrlDown()) { // サイトが落ちてたとき(メール通知) sendMail(); } else { Logger.log('正常に作動しています'); // ログに出力 MailApp.sendEmail({ to: EMAIL, subject: 'サイトは動作します', htmlBody: ` 以下のURLでサイトは動作しています。<hr> URL: <a href="${URL}">${URL}</a><br> ` }); } } function isUrlDown() { const response = UrlFetchApp.fetch(URL, { muteHttpExceptions: true // 例外処理はしないようにする }); return (response.getResponseCode() !== 200); // HTTPステータスコードが、「200」以外はエラーとする } function sendMail() { const dateTime = Utilities.formatDate(new Date(), 'JST', 'yyyy年MM月dd日 HH:mm'); MailApp.sendEmail({ to: EMAIL, subject: '【サイトダウン】検知しました', htmlBody: ` 以下のURLでサイトダウンを検知しました。<hr> URL: <a href="${URL}">${URL}</a><br> 日時: ${dateTime} ` }); }
とさくっと50行ほどのコードを書いてみました。
このコードを15分に一度、起動
15分に一度、サイトのステータスを返します。