更新のタイミング |
作成日:2000-11-05 最終更新日: |
先に述べたスクリプトに関して、 本当はまだ直すべきところがたくさんあります。一つだけ述べます。
更新すべきファイルは一律に24時間前としましたが、 本来は最後にコピーした時刻より後で更新した後のファイルを対象とすべきです。
これを実現するため、次のように考えました。 まず、最後にコピーした時刻を記録するファイルを用意します。 これを kosin.txt という名前にします。 そして、コピーをする前に、このファイルのタイムスタンプを読み込んでおきます。 このファイルの更新時刻より新しいファイルをコピーの対象とします。 そして、コピーをした後で、このときの時刻をファイルにコピーします。
$kankaku = (-M 'kosin.txt'); # 最後にコピーされてからどれだけ時間がたったか
(中略)
if ((-f $_) && (-M $_ < $kankaku)) { # 最後のコピー以降変更されたファイルに対して
(中略)
open(KOSIN, '>>kosin.txt'); # 更新ファイルに書き込む
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
localtime(time);
printf KOSIN "%4d-%02d-%02d %02d:%02d:%02d\n",
$year + 1900, $mon + 1,$mday, $hour, $min, $sec;
close(KOSIN);
まりんきょ学問所 > perl手習いの部屋 > 更新のタイミング