Home > Plagger > Plaggerをcronで定期実行する

Plaggerをcronで定期実行する

  • Posted by: retlet
  • 2008年5月27日 02:44
  • Plagger
  • このエントリーを含むはてなブックマーク
  • Plaggerをcronで定期実行する

crontabではほとんどの環境変数が設定されていないらしいので、そのままTerminalと同じコマンドを打っても動作しないことがある。

crontab で実行されるときには、ほとんどの環境変数が設定されていないので注意が必要。~/.cshrc・~/.login で設定している環境変数は設定されていないし、PATH も /bin:/usr/bin くらいにしか通っていない。そのため、command の部分に指定するのはシェルスクリプトにしておいて、シェルスクリプトの先頭で環境変数の設定を行い、その後いろいろなコマンドを実行するようにしておくのがよいだろう。

でもPlaggerとかをいくつも実行してる場合、いちいちシェルスクリプト用意するのも面倒だよなー。ということで、crontabに環境変数を指定してみた。
参考: suVeneのあれ: crontab 設定の小話

$ crontab -e

行頭に以下を追加。

PERL5LIB=~/Sites/plagger/plagger:~/Sites/plagger/plagger/lib:$PERL5LIB

すると以下の表示。ファイルの保存が出来てない?

crontab: temp file must be edited in place

どうもvimでファイルのバックアップを取る設定になっているのがまずいみたい。
参考: OSXでcrontabの編集が反映されない « ku

普段の設定はCronniX経由でやっているので、根本的な解決はせず一時的に.vimrcの該当行をコメントアウトして回避した。

$ vim .vimrc
":set backup

で、設定してOK。なはずなんだけど、なぜか

/opt/local/bin/perl plagger -c ~/Sites/plagger/fastladder-crawler.yaml

では動かず。

/opt/local/bin/perl ~/Sites/plagger/plagger/plagger -c ~/Sites/plagger/fastladder-crawler.yaml

としてやる必要があった。
なんでだろう。plaggerのパスは通ってるはずなんだけど。

あと /opt/loca/bin/perl も書きたくないなと思って

PATH=/opt/loca/bin:$PATH

とかしても書かないと動かない。せつなさサクレツ。

メモ

cronの設定ファイル直接編集してみたところ、CronniXから変更を加えた際にその部分が消えてしまった。
あちこちの説明を読むと、cronttab -e したり、crontab ~/.crontab したりしているし、直接編集は思想的にNGなのかな?

一応、cronの設定ファイルは(Mac OS X 10.4.11の場合)以下にあるけどいじらない方が良さそう。

$ vim /var/cron/tabs/USERNAME

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://retlet.net/cgi-bin/mtos/mt-t.cgi/26
Listed below are links to weblogs that reference
Plaggerをcronで定期実行する from retlet.net

Home > Plagger > Plaggerをcronで定期実行する

Search
Feeds

Return to page top