cronを使えない環境でcronを使う裏技!?

【追記】2011/07/28
今月 6日頃から、cron機能が使えないように設定が変更されたようです。
再設定しようとしても拒否されます。ザンネン。
GAEを使ってcronを使う詳しい手順を「cronを使えないならGoogleApp Engineを使えばいいじゃない!」という記事でまとめてますので、そちらをご覧ください。
【/追記】



無料でcronが使えるサービスをみつけました。
AXXISS land.toです。

(ちなみに、この記事が思ったより人気だったので、2010年10月にGAEでcronを使う詳しい手順を「cronを使えないならGoogleApp Engineを使えばいいじゃない!」という記事でまとめてみました。簡単にできるので、こちらも是非どうぞ)



はじめに

cronは、ご存じのとおりコマンドを定時に実行する機能です。
負荷やセキュリティの都合上、有償のレンタルサーバでも、提供されていなかったり機能が制限されていたりします


私の使っているレンタルサーバ「ジョブの間隔は最短で1時間に1回」+設定数の制限がありました。
勢い、cron-job.orgcron-job.de等の海外の無料のWeb Cronサービスになりそうですが、いかんせん日本語のサービスではないので、ハマった時の対処が難しい。


その点、AXXISS land.toなら、cronに、PHPMySQLも使えて商用利用も可能なレンタルサーバもついてきます!(※注:もちろん後者が本来のサービスです^^;;)。


cronの実行間隔に制限がない(ですから最短1分間隔です)ので、とても使い勝手がいいです。


Twitterbotを置くのにぴったりの無料レンタルサーバといえるでしょう。
(ただし、MySQLのバージョンが新サーバでも4.0.27だったり、ウェブページには強制的に広告がついてきたりします……けどTwitterbot用ならさほど問題ないよね)


▽プログラミングができない人もみんなTwitter Botを作ったらいいよ(phaのニート日記)
 http://d.hatena.ne.jp/pha/20090916/twitterbot


▽プログラミングができなくても作れるTwitter botの作り方
 http://pha22.net/twitterbot/


cronの使い方

ここに書いてあります。


▽Land.to非公式QandA 仕様:cron
 http://qanda.me.land.to/wiki/index.php?%BB%C5%CD%CD#y586431a


land.toは、telnetSSHが使えないので、シェルをCGIとして呼び出して使うわけですね。
cronの具体的な書き方は、このあたりで確認してください。


ちなみにland.toでは、telnet.cgiも使えました。


例えば...

cronを使えない環境であれば、以下の方法でcronと同じことができますね。

1.本来cronで動かしたいスクリプトを、cronを使えない環境の公開ディレクトリに置く
2.上記スクリプトのURLを開くスクリプトを書く(例:phpのfile_get_contents等を使って)
3.2.のスクリプトをland.toにアップして、land.toにcrontabの設定をする


この時、2.でwgetを使おうとしたのですが、wgetだとなぜか動きませんでした
wget単独だと動くんですけどねぇ……
私の設定の仕方が悪かったのかもしれませんが、原因の切り分けができなかったので、私はfile_get_contentsで逃げちゃいました。



<追記>2010/01/13 15:40
wgetでいけるかもしれません。


昨晩2-3時間動いた後、どこかを書き換えた際に動かなくなってしまい、さきほどまで原因をさがしてました。
動かない理由は使っているサーバのホームディレクトリが/home1/httpd/(アカウント名)/となっているのに、/home/httpd/(アカウント名)/となっていたためでした。


そう、ろくに確認してなかったケアレスミスです。
しかしそうすると昨晩もfile_get_contentsでは動かなかったはず。


wgetの記載がその時は残っていたはずなので、それが動いていたんじゃないかなーと思ってます。とりあえず動いているのでこれ以上つっこむのはやめますけど。


</追記>



また1.については、本来公開ディレクトリにおかないものをおくのですから、最低限認証をかける等の対処はしておきましょう。


おわりに

land.toは5年近く前にサークル用のウェブサイトを置くのに使っていたのですが、最近は存在も忘れていました(^^;
昨年末に現在の運営会社に事業譲渡したらしく、その旨のメールが来ていたので、存在を思い出した次第です。
お陰でcronを使えないかな?と思ってぐぐったところ、「Land.to非公式QandA」を発見することができました。


無料でここまで一通り使えて、cronまで使えちゃうというのは、AXXISS land.to、なにげにすごいですね。


もちろん、有料のレンタルサーバもだいぶ安くなりましたし、あえて広告付の無料レンタルサーバを使うニーズはだいぶ減っているでしょうが、使い方次第で大いに利用価値のあるサービスだと思います。


……但しcronを使う場合には負荷に配慮しましょうね。
もともとおおっぴらに使うことが予定されていない機能でしょうから、迷惑をかけてその結果機能が停止されてしまったら本末転倒ですから。


【追記】2010/05/26
今日、9時50分頃から4時間cronが動作しませんでした。
再度cronの設定をしたところ動き出したので、cronの設定が消されのだと思います
(とりあえず急ぎ設定をするため、設定を確認しませんでした)
保障されている使用方法ではないので、こういうこともあるかもしれません。がっかり