トップ(最新) | <前

nDiki : cron

スポンサード リンク

Related term

2008年2月26日 (火)

cron 呼び出しから D-Bus (Net::DBus) 使おうとしたら失敗していた このエントリーを含むはてなブックマーク

スポンサード リンク

Twitter への書き込みを自動的に Skype ムードメッセージに設定するスクリプトを定期的に実行しようと cron に設定しておいたのだが、一向にうまくいく気配がない。

cron からのメッセージを見たら

process 22612: arguments to dbus_connection_ref() were incorrect, assertion "connection != NULL" failed in file dbus-connection.c line 2465.

This is normally a bug in some application using the D-Bus library.

org.freedesktop.DBus.Error.Spawn.ExecFailed: dbus-launch failed to autolaunch D-Bus session: Autolaunch error: X11 initialization failed.

と出ていた。 X 関連か?

cron から呼び出す際には DISPLAY=:0.0 してからこのスクリプトを呼ぶようにしたらうまく動くようになった。

■ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。

Google Buzz はよろしければ Naney の Google プロフィールからどうぞ。


[ 2月26日全て ]

2008年3月13日 (木)

Flickr写真を自動的に Twitter アイコンにする このエントリーを含むはてなブックマーク

2週間ほど前にtwitterfeed で Flickr に写真をアップロードしたら自動的に Twitter にタイトルと URL をポストするようにしたのだが、これだと写ツみたいに画像そのものはポストされず今一歩なので、写真自体を自動的に Twitter アイコンアップロードするようにしてみた。

流れは以下:

  1. cron で定期的に FlickrRSS フィードをフェッチする (URI::Fetch + XML::RSS)。
  2. 新しい写真アップロードされていたら(最新の写真が変化していたら)、RSS フィード中のサムネイル画像 URL を抜き出して画像をダウンロードする (URI::Fetch)。
  3. 正方形に crop。それからころころ Twitter アイコンを変えると誰だかわからなくなるので、決まった画像 (今のところ自分の写真)を重ねる (ImageMagick / PerlMagick)。
  4. Twitterアップロードする(アップロードスクリプト)。

例えば今日 VQ1005 で撮影して Flickrアップロードした写真を自動的に加工させたものがコレ。

image:nDiki/2008/03/Twitter-icon-2008-03-13.jpg

なんか偽中継のような嘘臭さがあるけれど、まあだいたいアップロードした写真は自分が実際にその場にいたのだから、あながちでもないんじゃないか。


[ 3月13日全て ]

2008年3月16日 (日)

今日のさえずり - 初歩的なミスだが PATH の違い このエントリーを含むはてなブックマーク

naney:2333995855

@ 2008年03月15日

@ 2008年03月16日

  • 00:47 手で実行すると動くのに cron からだと動かないスクリプトの問題がわかった。初歩的なミスだが PATH の違い。
  • 22:33 VQ1005、プロキッチン楽天市場店は売り切れたけれど、本店やYahoo!ショッピング店はまだ売っているみたい。
  • 22:52 1本単位で単4形ニッケル水素電池を充電できる充電器が欲しい。

[ 3月16日全て ]

2008年8月5日 (火)

Twitter への書き込みを自動的に Skype ムードメッセージに設定する for Windows このエントリーを含むはてなブックマーク

半年ぐらい前に Skype for LinuxTwitter への書き込みを自動的に Skype ムードメッセージに設定するスクリプト(記事)を作って cron で 10分毎に更新するようにした。

Windows BOX 上 Skype を使っている時も同様にできるように、Skype4COM を使うバージョンも書いてみた。 D-Bus ではなく Skype4COM を使うようにすることと、Skype4COM にはシフト JIS の文字列を渡すようにすること以外はほとんど同じ。

Skype4COM の DLL を登録し、Skype が起動している状態で以下の Perl スクリプトを実行。

 #!/usr/bin/perl

 use strict;
 use warnings;
 use Win32::OLE;
 use URI::Fetch;
 use XML::RSS;
 use Date::Parse;
 use Encode;

 my $id = '自分の Twitter ID';

 my $time = time;
 my $fetch_response
   = URI::Fetch->fetch(
               "http://twitter.com/statuses/user_timeline/$id.rss?dummy=$time")
   or die URI::Fetch->errstr;
 my $rss = XML::RSS->new;
 $rss->parse($fetch_response->content);
 die 'no items' if @{$rss->{items}} == 0;
 my $item = $rss->{items}->[0];
 my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst)
   = localtime(str2time($item->{pubDate}));
 my $title = $item->{title};

 my $mood
   = sprintf("$title [%02d/%02d %02d:%02d]", $mon + 1, $mday, $hour, $min);

 $mood = Encode::encode('shiftjis', $mood);

 my $skype = Win32::OLE->new('Skype4COM.Skype');
 $skype->Client->Start unless $skype->Client->IsRunning;
 my $profile = $skype->CurrentUserProfile;
 $profile->{MoodText} = $mood;

インストール済みだった ActivePerl 5.8.8.822 で動作を確認(ちなみに現時点での最新は ActivePerl 5.10.0.1003)。なお URI::FetchXML::RSS、Date::Parse(TimeDate) は標準では入っていないので PPM パッケージインストール

タスク スケジューラで10分毎に上記のスクリプトを wperl.exe で実行するように設定。 これで Windows 上でもさえずりをムードメッセージに設定できるようになった。


[ 8月5日全て ]

2008年11月15日 (土)

今日のさえずり - オーナメントすぐもがれる このエントリーを含むはてなブックマーク

@ 2008年11月14日

naney:3028285041

@ 2008年11月15日

  • 10:17 電気ファンヒータ出した。[mb]
  • 16:50 クリスマスツリー出した。オーナメントすぐもがれる。[mb]
  • 21:28 明日は 10:00 - 11:00 でオフィス停電なのでサーバお守りしにいく。雨降るなよ(雨降ると停電延期の可能性有り)。

[ 11月15日全て ]

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 v5.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 v5.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日全て ]

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.027452s / load averages: 0.33, 0.29, 0.26
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)