スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Web更新チェック、DynamicDNC

定期的に更新されているWebページにあるキーワードが現れたらNoticeを送るようにするrubyスクリプトを作った。Googleアラートとかあるが、これはあくまでもGoogleの検索に現れたものが対象。携帯のメールに送れば、リアルタイムに知ることができ、またメッセージを短くしてNotifだけで済むようにすれば受信料は無料になる。このスクリプトは、そのページにあわせて必要情報をピックアウトするようにしているので、汎用性はない。他のページのときは、またそれに合わせてスクリプトを書き換える必要がある。

はじめWindows上で作り、ついで自宅サーバのLinux上においてcron実行させようとした。Windowsは使わないときは休止状態にしているので常時稼動しているマシン上で実行する必要がある。

ところが、これWindows上でうまくいくものがLinux上でうまくいかない。
まずは単純なミス。スクリプトの改行コードがCRLFとなっていたため、頭の
#!/usr/bin/env ruby
でNo such file or directoryと怒られてしまった。
次はこれ。

http = Net::HTTP.start(FQDN, 80)
response = http.get(PATH)

ここでhttpがnilになってしまう。ステータスがすぐにCLOSE_WAITになってしまう。rubyのバージョンを調べると、1.6。これが原因しているのかと思い、バージョンアップしたいと思ったが、apt-get updateをしても、1.6系だ。rpmから1.8をインストールしようとしたが、依存関係が多くて中断。

いろいろ変えてみて、

Net::HTTP.start(FQDN, 80) {|http|
response = http.get(PATH)
}
とするとうまくいった。不可解。

これがそのスクリプト。

あと、ついでにDynamicDNSの更新スクリプトもrubyで作成した。自宅サーバでは、安直にDynamicDNSを使っている。フリー版なのでIPアドレスが変わったタイミングで自分で提供先サーバに行って変えないといけない。またずっと変わらないからといって更新を行わないと、Expireとなってしまう。かといって、頻繁に更新を行うと、これまた無効にされてしまう。

なので適切なタイミングで、更新を行う必要がある。
もともとこれについては、dicedを使っていた。Windows版はちゃんと動くのだが、Linux版はベータ版ということもあってか動作がおかしく、デーモンを起動していてもきちんと更新が行われない。そのため、定期的にExpireの警告のメールが飛んできてその都度、手動でdicedを動かして、更新していた。何か設定が間違っているのだろうかと思っていたがよくわからなかった。バイナリなのでどういう動作をしているのかもわからない。
あるとき、dyndns.orgのサイトを見ると、httpのGETで簡単に更新が行えることがわかった。この程度なら自分で作れる、と思い、いつかやろうと思い、ずいぶんと時間がたった。そうしているうちに、フリーのclientも出てきたのだが、その使い方を覚えるのも面倒だし、問題があったら時間がとられるので自作することにした。

ここでまた、バージョン1.6の問題が出た。1.6ではfileutilsが入っていない。さすがにこの機能を自分で書くのは面倒なので結局インストールすることにした。ソースをダウンロードして、インストール実行。/usr/local/binに作られてしまったので、/usr/binの方にシンボリックリンクを作成。checkinstallを使って、rpm管理にしたかったが、なぜかmakeのターゲットにinstallがないと言われてしまい、うまくいかない。????

とりあえず作ったスクリプトはこれ。更新を行ったときは、メールで通知するようにする。
不親切で何の説明もないので、知りたい方がいた場合は当方まで連絡を。

関連記事
スポンサーサイト

コメント

非公開コメント

俺もこの間仕事でcheckinstall使ったよ。

ちっちゃ目のソースだとうまくrpm化された気がするんだけど、

PHPをrpm化した場合、なんか変というか、たとえば拡張パッケージのpearがなぜかrpmのなかに入ってなくて断念した。

俺の使い方がわるいのかcheckinstallが完全ではないのか。

なんでや~。
プロフィール

dayan

Author:dayan
小職は、SE(システムエンジニア)を専門としておりますが、技術的な情報を中心に、それ以外に経済関連の日記、たわいもない日記も載せていきます。
[公式HPもよろしく!]

天気予報

-天気予報コム- -FC2-
リンク
ブロとも申請フォーム

この人とブロともになる

カテゴリー
最近の記事
ブログ内検索
最近のコメント
最近のトラックバック
RSSフィード
月別アーカイブ


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。