指定日・指定時刻にウェブページを自動で更新させたい

指定日・指定時刻になったときに、ウェブページを自動で更新させたい

指定日・指定時刻になったときに、ウェブページを自動で更新させたい

指定日・指定時刻になったときに、自動でウェブページの内容を更新させたい、という場合があります。例えば、キャンペーンの案内を午前0時ちょうどから始めたいとか、何らかの結果発表を午前0時ちょうどから公開したい……といった場合です。

望ましい更新時刻が、更新担当者の作業できない時間帯だったり、確実に作業できるとは限らない時間帯だったりする場合もあるでしょう。その場合は、あらかじめ更新用のデータを用意しておき、指定の日時が来たときに自動で更新されるようにできると便利です。


 
ソースを見ても、更新内容がバレない仕組みを使う
ソースを見ても分からないように

ソースを見ても分からないように

このような自動更新の仕組みを利用する場合、指定日時になるよりも前に更新内容がバレてしまうと困ることもあるでしょう。したがって、ウェブページのソースを見るだけで内容が分かってしまう方法(例えばJavaScriptなど)は使えません。

そこで今回は、ウェブページを自動更新させる方法として、以下の2つの方法をご紹介致します。

(1) 指定日時にコマンドを実行する「cron」機能を使って自動更新する方法
(2) 現在日時を判定して、表示するHTMLを切り替えるCGIを使う方法

どちらの方法でも、更新日時や更新内容がバレることはありません。それぞれの詳しい方法については次のページから解説致しますが、まずは以下に両者の概要をご紹介しておきます。


 

1. 指定日時にコマンドを実行する「cron」機能を使って自動更新する方法

指定した時刻に、更新用HTMLファイルの内容を、現在のHTMLファイルに上書きコピーさせることで更新

指定した時刻に、更新用HTMLファイルの内容を、現在のHTMLファイルに上書きコピーさせることで更新

「cron」とは、指定した日時に任意のコマンドを自動実行させるための仕組みのことです。例えば「1月1日0時0分」のような具体的な日時を指定することもできますし、「毎日0時」のように定期的に実行させることもできますし、「8時間ごと」のように実行間隔を指定することもできます。

このcronを使って、「指定日時が来たら、現在のHTMLファイルを、更新用のHTMLファイルで上書きする」という処理を実行することで、指定日時での自動更新が実現できます。

※この方法は、ウェブサーバが動作しているOSが「Linux」や「FreeBSD」などのUNIX系OSであり、サーバ側でcron機能の使用が許可されている場合にだけ利用できます。


 

2. 現在日時を判定して、表示するHTMLを切り替えるCGIを使う方法

現在時刻を元に、新旧どちらのデータを表示するかを切り替える

現在時刻を元に、新旧どちらのデータを表示するかを切り替える

上記のcronを使う方法がシンプルで楽ですが、サーバによっては使えない場合もあります。その場合は、CGIを使うと良いでしょう。現在日時に応じて、新旧どちらのページを見せるのかを切り替えるCGIを使います。この方法なら、多くのウェブサーバで利用できるでしょう。ここでは、以下の2つの方法をご紹介致します。

(a) CGIで日時を判別し、新旧どちらかのHTMLを返す方法
(b) CGIで日時を判別し、新旧どちらかのURLへ転送する方法

aの方法だと、新旧どちらのページを表示している場合でもURLは変わりません。bの方法だと、新旧それぞれのページでURLが変わります。望ましいのは、aの方法でしょう。しかし、ウェブページの構成方法によってはaの方法は使えない場合もあります。その際は、bの方法を使うと良いでしょう。詳しくは本記事の3ページ目以降で解説しています。


 

(1)cronを使う方法か、(2)CGIを使う方法か

1の方法がシンプルで理想的です。既存のウェブサイトの構成に関係なく、たいていのページで自動更新ができます。しかし、ウェブサーバ側がcron機能の使用を許可していないと使えません。2の方法はCGIの作成が必要ですし、場合によってはウェブサイトの構造(ウェブページのURL)を若干変更しないといけないかも知れません。しかし、CGIが動くなら、たいていのウェブサーバで利用できます。

この2種類の方法を知っておけば、多くの環境で自動更新が可能でしょう。それぞれの方法の実現方法やメリット・デメリットなどについて詳しくは、次のページ以降でご紹介致します。

それではまずは、cron機能を使ってウェブページを自動更新する方法から見ていきましょう。