勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

Rubyでサイトの死活管理ツールの作成

   

Rubyの勉強で何かツールを作ろうと考えた。また、Railsとかは使わず素のRubyで、尚且つWebページとかは用意せずにコマンドラインからのみ使用ツールを作ってみたかった。サイトの死活管理ツールとか良さげだと思ったのでメモ。

 

環境と作成する機能

Rubyのバージョンは2.3.1を使用。

作成する機能としては特定のURLに接続を試しみてステータスコードが200以外の場合はメールを送信するというもの。またそのプログラムはCronで自動実行すると想定。

 

ソース

1行目はRubyのライブラリ「open-uri」というものを読み込んでいる。file_get_contents的なものみたい。リファレンスは以下。

https://docs.ruby-lang.org/ja/latest/library/open=2duri.html

2行目は「mail」というライブラリになる。そのままだけどメール送信に関するライブラリになる。こちらのリファレンスは見つからず。

あとはURLをチェックしてステータスコードが200じゃない、もしくはエラー発生時は「notification関数」を呼んでメール送信するという内容。

関数については実行前に記述しておかないといけない。作成時は実行後に書いていたのでエラーが発生した。

 

環境によってはメールが受信できない

これはRubyは関係なくメールサーバの問題だと思われるが、メールが受信できたり出来なかったりした。環境としてはsendmailで何も設定を行わずに起動しただけ。メールサーバ設定は未だによく分からないので、GmailのSMTPサーバを使ってメール送信する方法を用いた。以下がソース。

 

Cronで実行する

 

参考

https://qiita.com/nyamage/items/7145159c9a610f99b5d9

 - Ruby

  関連記事

rubylogo
ServersManのVPSにRuby on Railsを導入する方法

Ruby on Railsを導入した際のメモ。Cens OSのバージョンは6.3 ...

rubylogo
Rubyで基本的な構文のメモ

Railsを勉強する前にRubyの基本的な構文だけは抑えておこうと思ったのでメモ ...

rubylogo
Rubyでcookie指定した上でスクレイピング

Rubyで通販サイトの特定ページから価格部分のみを抽出したかった。そのサイトでは ...

rubylogo
Rubyで日時とファイルの取扱い

Rubyで日時を取得して整形した上で、指定したファイルに追記していきたかった。以 ...