サイト死活監視用に
無料でCRONが出来るサービス無いかと探していたら、
Google Apps Scriptのトリガーが便利そうなので書いてみた。
一定時間置きにURLをチェックして、検証文字列が無ければメールを送信。
トリガーの設定方法は下記を参考。
http://www.infoscoop.org/blogjp/2014/05/05/google-apps-script-sample/
http://dotinstall.com/lessons/basic_google_apps_script/24313
○秒応答が無かったらメール送信としたかったけど、timeoutの設定方法はわからず。
※timeoutの指定は出来ないようだ。GoogleAppScriptのタイムアウトは5minらしい。
http://stackoverflow.com/questions/19135818/how-to-cancel-an-urlfetchapp-fetch-after-specified-time
http://hima.okitsunesama.com/2014/07/gmail-googleappscript.html
function myFunction() {
try{
var url="検証URL"; //検証URL
var mailto="送信先メール"; // 送信先メール(カンマ区切りで複数指定)
var search_string="検証文字列"; //検証文字列
var response = UrlFetchApp.fetch(url,{
muteHttpExceptions : true
//trueの場合、HTTPエラーの時に例外をスローしない
});
if(response.getContentText().indexOf(search_string)<=0){
MailApp.sendEmail(
mailto,
"[GAS] 検証文字列が見つかりません",// メール件名
"",
{
htmlBody: url + "<br/>" + response.getContentText()
}
);
}
}catch(e){
// 接続エラー
//Logger.log(e);
MailApp.sendEmail(
mailto,// 送信先メール
"[GAS] 検証URLに接続できません",// メール件名
"",
{
htmlBody: url + "<br />" + e.message
}
);
}
}
探してみたら、newrelicのsyntheticsを使えばページ内の「検証文字列」の監視ができるので、実際はsyntheticsを使ったほうがよさそう。
http://newrelic.com/synthetics
http://qiita.com/kumatronik/items/c542feac77b08c3ca646