cronの活用方法

cronとは

cronとは、UnixやLinuxといったOSにおいて、コマンド(命令)やスクリプト(簡易プログラム)を定期的に実行する機能です。

一般的なレンタルサーバーにおいては、OSにはLinux/Unix系列のものが用いられています。そのためユーザー側でもこのcronを設定できる場合があります。

※セキュリティやサーバー負荷の懸念などの理由から、レンタルサーバー(共用サーバー)によってはcron機能が利用できない場合もあります。また利用が許可されている場合でも、設定個数や実行間隔に制限がかかっている場合もあります。

cronの利用例

cronの用途は様々に考えられますが、ここでは幾つかの利用例を紹介します。繰り返し自動実行する、というイメージを掴んでいただければと思います。

バックアップ作業

特定のディレクトリ内のファイル、あるいはデータベースなどを自動的にバックアップ(コピー)する際にもcronを使うと便利です。一度設定してしまえば、手作業と違って操作ミスが発生することもなく、また作業そのものを忘れるといった心配とも無縁です。

またバックアップのような操作は、一時的にハードディスクへの負荷が高まるため、日中などのアクセスが集まる時間帯は避け方が望ましいです。cronであれば「毎日深夜3時に実行」のように、時間を指定しておくことも簡単です。

ウェブサイトの自動更新

ウェブサイトを運営していると、なんらかのタイミングにあわせてページ内容を更新したいといったケースが出てきます。たとえばエイプリルフール企画のような期間限定イベント、タイムセールの深夜販売、なんらかの情報解禁、応募受付開始…等々、色々考えられます。

こうした際にもcronが役立ちます。まず更新用のHTMLファイルを事前に作っておき、別ディレクトリに保存しておきます。あとは深夜0時になったら、そのHTMLファイルを更新先(例:index.html)に上書きするようにcronを設定しておけば自動更新が実現します。

RSSフィードの取得

多くのウェブサイトやブログは、その更新情報をRSSフィードと呼ばれる形で配信しています。RSSリーダーを利用すれば、これらのフィードを取得して最新情報を得ることができます。

RSSリーダーは外部で提供されているウェブサービス(例:Feedly等)を利用することもできますが、サーバー上に自ら設置して利用することもできます。その際、RSSリーダーにフィードの定期取得を行うように設定するのにもcronは用いられます。

レンタルサーバーでcronを使うには

本来はcronを設定するには、サーバー上で「crontab」という設定ファイルを編集します。ただし一般的なレンタルサーバー(共用サーバー)では、管理画面から設定を行うのが普通です。

実際に例を見てもらう方が分かりやすいと思うので、管理人のcron設定例をひとつ紹介します。以下は、エックスサーバーにRSSリーダーを設置し、1時間ごとに最新のRSSフィードを取得しているものです。

cronの設定例

以前はGoogleが提供していた「Google Reader」をRSS取得に利用していたのですが、サービスが終了してしまったこともあり、現在は「Tiny Tiny RSS」というオープンソースのRSSリーダーを利用しています。

画像では「分」の項目に「0」を指定し、「時」の項目に「*(すべて)」を指定しています。これにより毎時0分に実行されます。また日・月なども「*」指定のため、日付や月に関わらず毎時繰り返し処理が行われます。

なおもしより短い30分間隔で取得したいといった場合には、間隔を示す「/」を使って「*/30」のように記述します。ただ、一部のレンタルサーバーでは実行間隔などが事前に定められており、それ以外の設定は行えない場合があります。
※上記画像のエックスサーバーでは問題なく設定できますが、ロリポップ!などは設定項目が制限されています。