nDiki : cron

2008年12月25日 (木)

PlaggerTwitter のあれこれをメールで通知

Twitter 上で要チェックなポストは、今年の4月から MAILPIAケータイメール通知するようにしていた(記事)のだが、最近メールが届かなくなってしまった。 フィードを変更してみたりメールアドレスを変えてみたりしたが駄目。 他に良さそうなフィードメール通知サービスが無さそうだったので Plagger を使うことにした。

Plagger は以前途中までインストールしようと思ったのだが、依存 Perl モジュールが多くて途中でやめてしまった。 今回は目的があってインストールするので、頑張ってインストールした。

インストールするホストに libxml2 と OpenSSL が無くて必須モジュールが入らなかったので、これを別途インストールPlaggerSubversion リポジトリの trunk をチェックアウトしてインストール。 依存 Perl モジュールCPAN から。

ケータイ向けにテキスト形式のメールを送る Publish プラグインWeb で見つけたものを流用。まずは以下の3つレシピcron で 10分毎に実行するように設定した。 メールは基本的に Gmail アカウントに送ってフィルタでケータイに転送。 うまくいっている感じ。

Twitter リプライをメールで通知

PlaggerTwitter にログインして replies API にアクセスするようにもできるけれどパスワードを書いておきたくないので、先月作成した CGI スクリプト(記事)経由で取得することにした。

  [Twitter]
    ↑
  [replies.atom さらし CGI スクリプト]
    ↑
  [Plagger (cron で 10分毎)]
    ↓
  [Gmail]
    ↓
  [ケータイ]

指定した Twitter-ers のポストのメール通知

Plagger で直接各 Twitter-ers のフィードを取ってこれるけれど、10分毎にアクセスするほどでもないので、Google リーダーTwitter-ers のフィードをフェッチさせてタグでたばねて公開したフィード経由で取得することにした。

Plaggerレシピをいじらないで Google リーダー上で Twitter-ers を追加・削除でき、Google リーダーでもポストを読めるというのが利点。 ポストが少ない Twitter-er のフィードは Google リーダーが巡回頻度を下げるのでタイムラグが大きくなることがあるのが欠点。

 [Twitter]
   ↑
 [Google リーダー]  ← [Web ブラウザ (設定・チェック)]
   ↑
 [Plagger (cron で 10分毎)]
   ↓
 [Gmail]
   ↓
 [ケータイ]

twitter検索結果をケータイにプッシュ

外出先などで、居場所やイベントの情報を Twitter でチェックしたい時がある(役に立つかどうかは別として)。 ケータイから定期的に検索かけるなんてありえないので、メールでプッシュしておいて(気がむけば)読むぐらいにしておきたい。 キーワードの設定・管理については、操作・サーバ実装とも楽したい。

Twitter 関連ということで頻繁にケータイでアクセスして画面に出ている MovaTwitter を活用したい。 ということで MovaTwitter のクリボーに「アクセス keyword」と書くことで検索キーワードを指定できるように組んでみた。

 [MovaTwitter クリボー] ← [ケータイ (キーワード書き込み)]
   ↑
   ↑ クリボーのフィードを読んでキーワードを取得
   ↑
 [CGI スクリプト] → [twitter検索]
   ↑
 [Plagger (cron で 10分毎)]
   ↓
 [Gmail]
   ↓
 [ケータイ]

いまさらだけれど、Plagger 便利だな。 とっかかり(インストールと概要理解)がちょっと難しいけれど、それを乗り越えてしまえば Perl なんでどうとでもなるという感じ。

スポンサード リンク
[ 12月25日全て ]

2009年7月3日 (金)

全文検索システム Hyper Estraierアップデート

社内 Web ページ全文検索用に設定していた Hyper Estraier だが、かなーり前からたまにクロール/インデックス作成に失敗してインデックスが壊れてしまうことがあった。で検索できないまま放置していたのだが、やはり時々検索したいというリクエストをもらったので、復旧することにした。 Hyper Estraier も 1.2.7 のままだったので、最新版に更新。 設置が 2006年6月なので3年ぶりの更新。

前回と同様ソースからのインストール。 今回は自分のホームディレクトリ以下に。 以下作業手順メモ

QDBM

 wget http://qdbm.sourceforge.net/qdbm-1.8.77.tar.gz
 tar zxvf qdbm-1.8.77.tar.gz
 cd qdbm-1.8.77
 ./configure --enable-zlib --prefix=$HOME/local/hyperestraier-1.4.13
 make check
 make install

Hyper Estraier

 wget http://hyperestraier.sourceforge.net/hyperestraier-1.4.13.tar.gz
 tar zxvf hyperestraier-1.4.13.tar.gz
 cd hyperestraier-1.4.13
 PKG_CONFIG_PATH=$HOME/local/hyperestraier-1.4.13/lib/pkgconfig ./configure --prefix=$HOME/local/hyperestraier-1.4.13
 make
 make check
 make install

インデックスの作成とクロール

前回 /usr/local/var/lib/hyperestraier/estwaver に保存するようにしていたので、今回もそそれはそのままで。 クローラのルートにある _conf は作り直しの際に間違えて消してしまいそうになるので、ホームの etc においておいてシンボリックリンクをはっておく。 _conf は以前に作っておいたものを利用。

 mkdir /usr/local/var/lib/hyperestraier/estwaver
 $HOME/local/hyperestraier-1.4.13/bin/estwaver init /usr/local/var/lib/hyperestraier/estwaver
 rm /usr/local/var/lib/hyperestraier/estwaver/_conf
 ln -s $HOME/etc/hyperestraier/_conf /usr/local/var/lib/hyperestraier/estwaver/_conf
 $HOME/local/hyperestraier-1.4.13/bin/estwaver crawl -revcont /usr/local/var/lib/hyperestraier/estwaver

検索インタフェース CGI プログラムを配置

 cd $WEBDIR/search/hyperestraier
 cp $HOME/local/hyperestraier-1.4.13/libexec/estseek.cgi .
 chmod 755 estseek.cgi
 cp $HOME/local/hyperestraier-1.4.13/share/hyperestraier/locale/ja/estseek.* .

で estseek.conf を編集。indexname を /home/naney/local/hyperestraier-1.4.13/estwaver/_index に。その他好みにあわせて設定を変更。

cron 設定

前回の設定では、クロールとインデックスの更新夜中に行うからインデックスがロックされてもいいやと直にオリジナルのインデックスを更新するようにしていたが、今回はきちんとコピーして更新するようにした。 1日1回以下のスクリプトを実行するように設定。

 #!/bin/sh
 PREFIX=/home/naney/local/hyperestraier-1.4.13
 VARDIR=/usr/local/var/lib/hyperestraier
 test -e $VARDIR/estwaver-copy && exit
 cp -a $VARDIR/estwaver $VARDIR/estwaver-copy
 $PREFIX/bin/estwaver crawl -revcont $VARDIR/estwaver-copy
 $PREFIX/bin/estcmd inform $VARDIR/estwaver-copy/_index || exit
 rm -rf $VARDIR/estwaver
 mv $VARDIR/estwaver-copy $VARDIR/estwaver

リクエストしてくれた人、検索できるようになったから使ってね。

[ 7月3日全て ]

2009年10月23日 (金)

さくらのレンタルサーバ プレミアム申し込んだ

www.naney.org で使っているホスティングサービスは

  • SSH が使える。
  • daemon プログラムを起動しておいても怒られない。
  • cron が使える。

という点でいろいろ遊べるのだが、

  • 今の相場的にはかなり高めなのにホームが容量 100MB (メールは別に 100MB)。
  • Perl が10年以上前の Perl 5.005_03。自分で新しい Perl を入れようにも容量 100MB だと厳しい。5.005_03 だと Perl 5.6 系以降の文法が使えないし、使える Perl モジュールも限定されているので悲しい。
  • 夜中になると analog が動いてサーバが重くなる。
  • メールの送受信が遅延することがある。

などから使いづらくなってきた。 なにより容量を気にして記事を書き控えようという心理が働くのがよろしくない。 そろそろ今後を考えて他社に乗り換えようかと。

選んだのはやはり人気があって SSH も使える「さくらのレンタルサーバ」。

選んだプランは容量 10GB のプレミアム。 スタンダードでも容量 3GB でまずまずだし cron も使えるから機能的にも十分なんだけれど、1ホストあたりの収容ユーザ数により余裕があるであろう1つ上のプランにしておいた。

Web から申し込んで、風呂に入っている間に DNS 設定が反映されて SSH ログインできるように。 順次ソフトウェアインストール・コンテンツの移行とメールの設定をしてから、naney.org をこちらに切り替える予定。

[ 10月23日全て ]

2009年12月23日 (水)

www.naney.orgさくらのレンタルサーバへ移転

naney.org メールサーバの移転に次いで、Web サーバの移転作業。

静的コンテンツのアップロード

現行 Web サーバUnisonファイル同期している Web コンテンツを、さくらのレンタルサーバUnisonファイル同期

WiKickerインストール

nDiki 用に DiKicker (WiKicker) を make install。

 %bash
 $perl -MCPAN -e mkmyconfig
 $perl -MCPAN -e shell
   o conf makepl_arg PREFIX=/home/naney/local/WiKicker
   o conf mbuildpl_arg --install_base=/home/naney/local/WiKicker
   o conf commit
   notest install CGI::SpeedyCGI

 $tar zxvf WiKicker-0.420.tar.gz
 $cd WiKicker-0.420
 $export PERL5LIB=$HOME/local/WiKicker/lib/perl5/site_perl/5.8.9
 $perl Makefile.PL PREFIX=$HOME/local/WiKicker
 $make
 $make install

以前きっちり Module::InstallMakefile.PL を作っておいたおかげで、比較的スムーズにインストールできた(自画自賛)。

ちょっとはまったところは CGI::SpeedyCGI の make test を実行する(される)と SSH 接続がサーバ側から切られてしまうという現象にあったところ。 テスト用に大量にスクリプトが起動されるの検出して自動的に kick されたのだろうか。

.htaccess の修正

さくらのレンタルサーバでは .htaccess Options が使えないようなので削除。 ExecCGI や MultiViews が有効になっているようなので問題なし。

いつくかのスクリプトの修正

Perl 5.005_03 用に書いてあったスクリプトについて、Perl 5.8.9 で文字化けしないように utf8 まわりを修正。

cron 設定

1時間毎に実行したい処理を列挙するシェルスクリプトを1つ作って、コントロールパネルから1時間毎に実行するように設定。

現行サーバでは任意の crontab を設定できたので、1時間毎はちょっと物足りない。 おいおい負荷にならない範囲で、外部から定期的に HTTP アクセスして処理を定期的に実行できるようにもするかな。

DNS 設定変更

まだ動いていないスクリプトもあるけれど(大きいところだと NaneyOrgWiki (Wiki))現行サーバの解約日もせまっているので、サーバ移転させてしまうことに。

VALUE-DOMAINDNS サーバ設定を変更し www.naney.orgさくらのレンタルサーバにアクセスできるように A レコードを変更。

今のところ特に重い等もなく順調。 現行サーバでは深夜非常に重くなる時間帯があったのだが、それが無くなるのが嬉しい。 また容量が100MB*1から10GB*2になったので心理的にセーブしなくて良くなった。

年内に移行できて良かった良かった。


[ さくらのレンタルサーバ プレミアム ]

*1メール等別

*2メール他を含む

[ 12月23日全て ]

2010年2月9日 (火)

Twilog で tweet をセカンダリロギング

一昨日の夜から Twilog を使い始めてみた。あ、これいいね。

  • OAuth 認証ですぐに使える。
  • あっけなく過去 tweets を遡れるところまで取得してくれる。
  • UI が直観的ですぐに理解できる。
  • CSV 形式で過去ログを取得できる。

Twitter のつぶやきをブログ形式で保存するサービス」というのにひっかかって今まで使わないでいたのがちょっともったいない。 自分の tweet は「RSS から cron で一定時間毎に取得して nDiki 用のマークアップ付きテキストファイルに自動変換」(記事)して「手動で取捨選択・編集して1~数日分で1記事化」しているんだけれど、プレーンな形式では残していないので保存用に CSV 形式で取得できるのは非常にありがたい。定期的にダウンロードして保存したい。

ちなみに多くの人が言っているように他人の「その人のその日の tweets を順番に並べただけのまとめ記事」ってとてもつまんない(nDiki でもやっているけど)。 でも本人にとっては見返してみると記憶が蘇えってきて結構楽しいし、またきちんと検索できればパーソナルナレッジベースとしても非常に便利。 だからどんどんやればいいと思うよ。


[ Twitter 関連サービス ]

[ 2月9日全て ]

2010年5月14日 (金)

今日のさえずり: 北海道や東北ではデズニーランドなんだ

2010年05月14日

  • 11:39 ん? 秋葉原から恵比寿って日比谷線より山手線の方が速くて安いのか。
  • 12:23 床屋予約。日曜日 9:30。
  • 12:30 通りでクーポンもらって 600円。 (@ ケンタッキーフライドチキン 秋葉原店) http://4sq.com/5g7jf6
  • 15:39 社内 Web サーバが重かったのは cron からの大量のメールで /var/spool/mail/root が巨大になりすぎ、sendmail が配信できなかったメールをがんがんリトライし続けていたためっぽい。
  • 15:58 コーラ飲んでげふってしたくなった。
  • 16:06 ペプシネックス with サタデー・ナイト・フィーバーにした 125円。 (@ ファミリーマート 東神田二丁目店) http://4sq.com/aredqe
  • 17:35 眼鏡出来上がった(再)らしい。
  • 19:07 @3_DaiMe_Yoshi 眼鏡かえるとクラクラしますよね。一度できあがって試しにかけたのですが同じ度で作ったのにずいぶん違った見えでした(レンズの大きさとかで)。
  • 19:44 眼鏡受け取りに恵比寿に向かってる。日曜日には床屋に行くし、週明けは別人ですよ。
  • 19:58 「混雑時、ひらくワキにご注意ください。」という Ban の広告の下に「ワキ、ヨォーシ!」という TBC の広告。陰謀の香りがプンプンする。
  • 20:23 眼鏡できたよ。
  • 20:33 Android 本買った 3360円。 (@ 有隣堂 アトレ恵比寿店) http://4sq.com/6FtGjA
  • 20:36 @Meg_mama ありがとうございます。今のがボロボロでようやくの新調です。そういえば Xperia 入手されたんですね!
  • 20:48 @Meg_mama 実は昨日 XperiaUstream 公式アプリ(2つ)入れて試してみました。配信・視聴それぞれできましたよ。Ustream アカウント初めて作ったぐらいのレベルなのでで画質や使い勝手の良い悪いはわかってないです。
  • 20:51 眼鏡受け取って今品川駅です。あとはまっすぐ帰りますね。
  • 20:56 やちゃった。無難な内容でよかったけど、1つ前の tweet メールするつもりだったやつ。送信押した瞬間「あって」。
  • 20:57 そして乗り換えた電車が空いてると思ったら逆方面のだったり。
  • 21:04 @Meg_mama マーケットで Ustream検索して作者が Ustream.tv の2つのアプリケーションです。配信は…ネタがないので当分ないです。
  • 21:12 Xperia 買ってから乗り過ごしとか逆方面とか東京生まれらしくない乱れっぷり。
  • 21:51 新しい眼鏡かけてご飯食べた。前のちょっと歪んだ眼鏡に脳が適応してしまっているせいか、まだ違和感あり。ああ、でもずいぶん明るくクリアになったなあ。いいね。
  • 21:54 しかし新しい物を買った時の常というか、急に今まで使っていた眼鏡がすごくボロッちく見えてきた。
  • 22:56 へー、北海道や東北ではデズニーランドなんだ。
[ 5月14日全て ]

2012年3月28日 (水)

今日のさえずり: 西友で家庭用放射線測定器が売られている時代

2012年03月28日

  • 07:07 @mushikabu 次の日仕事でも起きてるやん。
  • 09:41 出発!
  • 10:00 本日有給休暇をいただいております。
  • 10:30 到着。 (@ CINECITTA') http://t.co/KhXEh1ih
  • 10:44 オールスターズきたこれ。
  • 10:45 映画鑑賞は去年1月の「ソーシャル・ネットワーク」ぶり。
  • 10:50 上映開始!
  • 11:20 そろそろ横浜が悪いやつにやられているころ(予想)。
  • 12:00 みらいのともだち! (よそう)
  • 12:17 感動で涙した。
  • 12:51 プリキュア帰りで埋め尽くされてる。 (@ ジョナサン 川崎チネチッタ通り店) http://t.co/9aUpYq4p
  • 13:56 ミラクルデコルライトにはネックストラップが必要。
  • 13:59 RT @medtoolz: 「できない」という言葉に対して徹底的に「なぜ?」を重ねて、本人に「できる」ことを発見してもらう、という空気を組織に醸成すると、末端の部下はたぶん、倒れるまで働くし、自分の責任で法律を破ってくれるし、上司は笑いが止まらない
  • 15:07 @mushikabu なんと。さすがにもうオフィス?
  • 15:28 西友で家庭用放射線測定器が売られている時代。エアーカウンター S 6500円。
  • 15:31 こい秋月電子通商。
  • 22:28 dynabook T451/58ER ぽちった。
  • 22:41 2009年12月末で解約したホスティングサービスから、今日の12:00過ぎより1時間毎と30分毎に Cron Daemon からエラーメールが届くようになったんですけれど、何の嫌がらせですか?
  • 22:46 当時 cron で実行していたスクリプトが No such file or directory だって。そうですかそうですか。そうじゃないと困るんですけど。っていうか何で今頃その entry が有効になるんですか。
  • 23:37 @mushikabu 解約したら、とっととデータや設定消して欲しいっす。
[ 3月28日全て ]

2012年4月10日 (火)

今日のさえずり: 明日に向かって線表引いてる

naney:6917289792

2012年04月10日

  • 09:41 今日もあったか。 (@ 株式会社ミクシィ (mixi, Inc.)) http://t.co/IbaL5wUC
  • 11:21 RT @m0h1can: SWI-Prolog25周年パーティが開催されるとかPrologはじまり過ぎだ、しかも場所が日本なんですよ!
  • 13:33 シルエット。 http://t.co/Wbg0HQxZ
  • 13:33 いちご大福に遭遇した。 (@ 東横のれん街 東急百貨店東横店) http://t.co/V3Ydan9X
  • 13:40 きれいやねー。 (@ さくら通り) http://t.co/DKi8DL6W
  • 13:44 さくら通り。 http://t.co/dZyOTReU
  • 14:12 いちご大福買ったった。あまり遅くならないで帰る。 (@ 東横のれん街 東急百貨店東横店) http://t.co/fOgo075U
  • 14:31 f が m に対応してないので F みてもらった。
  • 15:23 明日に向かって線表引いてる。
  • 18:25 今日は社内自転車勉強会です!
  • 18:43 要約統計量。
  • 19:08 理科系の作文技術は自分のが何刷なのかを戦わせるゲームなので、ソーシャルゲーム化するとウハウハだと思う。
  • 19:34 退勤。いちご大福いちご大福。
  • 19:51 RT @bulkneets: cronに呼び出されるスクリプト作るとき、先頭の方でexport PATH=/usr/bin:/bin とかしとくとcrontabの気持ちで実装できて楽なんだけどこれやってんの俺だけなのかな
  • 20:01 定期券継続。
  • 21:32 追分だんご本舗のいちご大福、値段相応にボリューム感があってやわらかくてウマウマでした! 中のイチゴは小振りだけれどバランス的には悪くない感じ。幸せ幸せ。
  • 21:57 ちょっと紙copi使おうかなと思ってる。これって共有フォルダ上にデータ置いて複数の PC から同時に使っても大丈夫にできてるのかな。
  • 22:33 紙copiインストールしてみた。なんかいろいろレガシーで残念だった。
  • 22:35 Evernote にあるようなインクリメンタルサーチによる絞り込みが最低あればまだ使えるかなと思うのだが……。
[ 4月10日全て ]

2013年6月12日 (水)

Twitter API v1 完全停止

ついに Twitter API v1 が完全停止となった。

あー、自分の Tweet 取得スクリプトも一部は v1.1 に合わせたのだけれど、RSS フォーマット版で呼んでて JSON 対応は先送りしてたんだよね。

ということで cron で動かしているのだけれど取ってこなくなった。週末修正するかなぁ。それともメンテナンス止めて Twilog のログダウンロードで済ますかなぁ。

[ 6月12日全て ]

2013年9月26日 (木)

【日記】最近メール関連ではまり続けているとか

IFTTT + HootSuiteHootSuite 障害で動かなくなった。

IFTTT + Gmail に変更。URL 短縮も自前でやる必要があるのでフィード側で対応したものの、Gmail 側に bot 疑惑をもられたのか「送信メールが reject される」「Gmail ログイン時に CAPTCHA 入力を求められる」「Android での Google アカウント設定も一度強制的に無効化された」などとなり、ban の危険性が出てきたので停止。

→ かわりに IFTTT の Mail チャネルを使おうかと。Mail チャネルだとそのアドレスにしか受信できないので、受信したら自動的に別のアドレスに配送するプログラムを書くことにする。さくらのレンタルサーバでのプログラム実行方法を確認。

IFTTT で Mail チャネルに送った場合 text/plain なパートはボディ中の URL が変なクリックトラッカーの URL に置き換えられているので使えないことが判明。text/html パートの方を使わないと駄目ぽ。ということで Perl スクリプトで「Email::MIME で parse」「HTML::TreeBuilder で該当箇所を抽出」「Email::Sender::Transport::SMTP::TLS」でメール送信するようにした。IFTTT での trigger が foursquare の時と feed の時で Email チャネルから送信される HTML 構造が変わるなんて……。組み合わせ別にテンプレートが違うのか。

→ 配送できるようになったけれど IFTTT からうまく送られない。再 activate しても PIN すら届かない。別のメールアドレスにすると PIN が届く(数時間後だったりすぐだったり)ので、窓口にしたいメールアドレスが利用不可になっているか(テスト中にエラーを返してしまっていて使えない判定されたとか?)、IFTTT の方の配信が詰まっているのかよくわからない状態。プログラムができたのにそもそも送られてこないとは。

→ という作業をしている間に放置していた postmaster に3万通ぐらい cron のログがたまってたのに気がつく。Gmail で受信しておくようにするかと Mail Fetcher 設定。そうしたら10数時間後ぐらいから、同じ Gmail アカウントに設定してあった Mail Fetcher を巻き込んで全部「確認中」で止まってフェッチしてくれなくなってあばば。急いで postmaster の Mail Fetcher 設定を外す。数時間後に他のフェッチが再開し始めてほっと一安心。

→ イマココ。

[ 9月26日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.077573s / load averages: 2.24, 0.97, 0.73
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker