Cronが利用できないレンタルサーバで自動実行を実現する方法4

バナー

新しいMac mini。Intel Core Duoをついに搭載。

(最終更新日:2006年4月30日)

1.基本的な考え方

シェルスクリプトをcronを使って実行させることが不可能といっても、それはサーバの機能であるcronを使って実行できないというだけであって、そのシェルスクリプト自体はいつでも実行可能なわけです。ただ、「自動」でというところで、サーバの機能を使えないということです。

サーバがやってくれないのであれば、他の手段で実行することができれば問題解決となります。下準備として、そのシェルスクリプトをPHPのSystem関数から実行させることができるPHPプログラムを準備します。(System関数の使用は、セーフモードの環境下では制限されますので、そのような場合はこの方法は無理かもしれません。System関数の利用法はPHPのマニュアルをご参照ください。)

そのPHPプログラム(URL。例:http://www.example.com/php/db_backup.php)に自動でアクセスする方法を考えればいいことになります。これまで、「2.Windowsのタスクスケジューラ機能を使用しての方法」、「3.一般のサイト訪問者のアクセスを利用する方法」「4.フリーソフトを活用する方法」でしたが、今回の方法は「灯台下暗し」ともいうべき方法です。


5.MacOSXのUNIXコマンドを利用する

レンタルサーバの中には、確かに、cronの利用を禁止しているケースも少なくないのですが(cronが利用可能なレンタルサーバのリンク集はこちら)、MacOSXはUNIXベースのOSですから、cronが利用できます。私が愛用しているeMac(Tiger 10.4.6)には、cronと「curl/7.13.1 (powerpc-apple-darwin8.0) libcurl/7.13.1 OpenSSL/0.9.7i 」が利用可能になっています。(wgetはなぜか入っていませんでした。iMac(Panther)にはwgetもcurlも入っていました。)

cronとcurlを組み合わせれば、指定した時間に特定URLにアクセスさせるのは、いとも簡単にできます。また、curl(及びwget)の場合、IDとパスワードによる認証も可能ですから、万が一にも第三者によってアクセスがなされないようにすることも可能ですから、セキュリティ上も、今までご紹介した代替案より勝っている部分が多いでしょう。また、ユーザーーエージェントの変更もオプションで可能ですから、ユーザーーエージェントを自分だけが知っているパスワードのようなものにすれば、二重に認証できます(IDとパスワードを知っていても、IEやSafariでのアクセスはエラーにできます)。

curlの使い方については、「Cocoaはやっぱり! 『インターネットにアクセスしよう 番外編 : curlの使い方 』」などをご参照ください。wgetの使い方については、「Wgetを使おう的ページ」などをご参照ください。

このMacOSXのUNIXコマンドを利用する方法は、もちろん、Macを起動させておかなければならないので、レンタルサーバのcronが利用できたに越したことはですし、もちろん、これだけのためにMacを買うのも馬鹿らしいですが、Mac miniであれば、74,800円(送料無料。2006年8月26日現在)と格安です。Macでのホームページの見え方をチェックするためにはMacは必要ですし(特にSafariでの表示のされ方やJavaScriptの挙動などは、Macがないとほとんど分かりません。Mac版IEの公開は既に中止されていますが、バギーなMac版IEの挙動は実機がないと予測不能です。)、まだお持ちで無い場合は、この機会に、一台ぐらいは準備をお奨めいたします。



PHP/PostgreSQL/cron/mod_rewriteが利用可能!!



← 失敗しないレンタルサーバの選び方に戻る