更新のタイミング

作成日: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手習いの部屋 > 更新のタイミング


MARUYAMA Satosi