サーバーに事前にアップロードしておいた更新ファイルを、指定時間に自動的にファイル名を入れ替えて更新するにはどういう方法がありますか?できればファイル名だけでなくディレクトリ名にも対応できるものを探しています。


「index.html」を更新するために「index20050101.html」を事前にアップしておく。

指定した日(例として1月1日)になるとファイル名を自動的に変更し更新。

古いファイルは「index.html_bakup20050101」のようにバックアップとして置いておく。
という感じです。サーバーになにかしらのプログラムを置く必要があるかと思っていますが、他の方法でも実現できればかまいません。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:replicorn No.1

回答回数7ベストアンサー獲得回数1

ポイント30pt

UNIXサーバであればシェルスクリプトを用意しておき、cronという指定時刻でプログラムを起動してくれるデーモンというものを利用すると簡単です。

cronから毎晩0時にシェルスクリプトを呼び出すように設定しておき、シェルスクリプトのほうでは「今日の日付のファイルがあるか」を判断させます。なければプログラムを終了します。

あった場合は、まずcpコマンドでバックアップを取り、次に指定のファイルをcp -fコマンドで強制的に上書きコピーをします。これは一瞬でも「ファイルが存在しない」状態を作らないようにするためです。

あとは、不要なファイルを削除するなり、バックアップしたファイルを圧縮するなりすれば良いと思います。

id:koboji

なるほど。具体的にかいていただいてありがとうございます。

出来れば、ブラウザから更新ファイルを指定できるもの、指定日時をプルダウンで選択したりといったプログラムがあればと思っています。

初心者でもインストールすれば使えます、みたいのが一番理想です。

2005/01/23 07:09:40
id:moritamasahiro No.2

回答回数190ベストアンサー獲得回数0

ポイント20pt

ファイル名を入れ替えるのではなくて、PerlやPHPで日付から生成したファイル名と一致するというやり方もあります。

ファイルの内容を表示するための「index.php」とその日付に表示したい「index20050101.txt」を事前にアップする。

index.phpにアクセスがあったとき日付からファイル名「index20050101.txt」を生成して、ファイル名が一致するファイルをインクルードする。

この手法であれば、特にファイル名等を変更する必要もありませんし、日付の条件にあうファイルがない場合は標準のページを呼び出すなどもできます。

id:koboji

なるほど。ありがとうございます。

フリーやシェアウェアのプログラム、市販ソフトウェアなど、サーバーにこれをインストールしたらできるよ、などはないでしょうか。

サーバー内のファイルがリストで見えて、それを選んだ後日付を設定すると更新待ち状態になるような・・・

2005/01/23 16:29:41
id:izayoimizuki No.3

回答回数302ベストアンサー獲得回数0

ポイント20pt

moritamasahiro様のやり方で出力するファイルを

HTMLファイルとして完全に成り立っている状態のものを

バックナンバー用のフォルダに出力して

Options +Indexes

と書いた.htaccessをおいてindex.htmlをおかなければ

ファイル名を省略してバックナンバー用のフォルダにアクセスするだけで

Apacheが作成したファイル一覧が表示され

そこからHTMLファイルを選択することで解決できると思います。

id:koboji

ん〜、ソフトウェアとして既に使えるツールがあればと思っているのですが、出ないようですね。

しかし、こういう方法でもできるという事で勉強させて頂きました。どうもありがとうございました。

これで一旦終了したいと思います。

2005/01/28 21:47:58

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません