学研都市天文台では、イベントを行う際に事前にメールマガジンで告知し、指定した時間にブログに申込み記事を投稿して受け付けている。使っているブログソフトはMovable Typeなのだが、指定時間を設定してもアップされないで困っていました。今回原因を調べたところ、サーバーで定期的に指定時間が来た投稿が無いかチェックするプログラムを動かさなければならないという事が判明。定期的に実行しなければならないプログラムは、インストールディレクトリの中のtoolsディレクトリの中のrun-periodic-tasksというコマンドです。さて、ここからが問題です。このプログラムをどうやって定期的に動作させれば良いのでしょうか?これまた色々と調べると、cronを使う事で可能との事でした。でも、cronは、レンタルサーバーでは使用禁止のところもあり、設定出来ません。早速、契約しているレンタルサーバーをチェック。ありました。契約しているサーバーのサーバーパネルにcronの文字が…。あまり頻繁に起動してサーバーに負荷をかけてもいけませんので、15分間隔で起動するように設定。そして、この記事を投稿。さて、上手く動作するでしょうか?無事動作すれば、設定を1時間に一度にします。
<補足>
やっと、自動投稿出来ました。契約しているサーバーが原因なのかは不明ですが、run-periodic-tasksを実行すると、モジュールが見つからない旨のメッセージが表示されます。どうやらPearのパスにMovable Typeのパスが追加されないようです。cron自体がコマンドを絶対パスで指定するので、run-periodic-tasksのコーディングのままではモジュールへのパスの追加のコーディングが不味いようで…。私はPearの専門家じゃないんで、エイヤッ!って感じでrun-periodic-tasksの中のパスの追加コマンドでMovable Typeのモジュールの絶対パスを書いてやると、おっ流れた!
兎に角、自動的に投稿出来る環境は出来ました。ただ、Pingが飛んでいない、アーカイブが更新されていない等、まだまだ問題はありますが、とりあえず便利。