vine-users ML アーカイブ



[vine-users:072703] Re: では、 warning: slocate: warning: database .... is more than 8 days old?

  • From: Satoru Otsubo <otsubo_p@xxxxxxxxxxxxxxx>
  • Subject: [vine-users:072703] Re: では、 warning: slocate: warning: database .... is more than 8 days old?
  • Date: Tue, 23 Aug 2005 12:59:41 +0900
大坪です。

小林さん、丁寧に訳していただきありがとうございます。

> man anacron から。
> 
> - 
> anacron を使ってコマンドを頻度を日単位で指定して定期的に実行することが
> できます。cron(8) と違い、これはマシンが常時稼動していることを仮定しま
> せん。よってこれを使うことにより、1日24時間稼動していないマシンにおいて
> 、通常ならば cron で制御するような日毎、週毎、月毎のジョブを制御するこ
> とができます。
> 
> anacron は実行されると、ジョブの一覧を設定ファイル(通常は
> /etc/anacrontab - anacrontab(5) を参照のこと)から読み込みます。このフ
> ァイルには anacron の制御するジョブの一覧が書かれています。各ジョブエン
> トリでは日単位の実行間隔、分単位の遅延、一意なジョブ識別子、シェルコマ
> ンド、を指定します。
> 
> anacron は各ジョブ毎に、そのジョブが最近 n 日以内に実行されたかを調べま
> す。ここで n はそのジョブに指定された実行間隔です。もし実行されていない
> なら、anacron は遅延パラメタとして指定された分数だけ待った後に、そのジ
> ョブのシェルコマンドを実行します。
> 
> そのコマンドが終了したら、anacron は日付をそのジョブ用のタイムスタンプ
> ファイルに記録して、次いつ同じジョブを実行すべきか分かるようにします。
> 時間の計算には日付だけを用い、1時間単位は用いません。
> 
> 実行すべきジョブが残っていなければ、anacron は終了します。
> - 
> 
> ということで、anacron は終了するものと思われます。
> 

ところで、システム起動後、すぐに
$ /etc/rc.d/init.d/anacron status
とすると、
実行中...
でした。そこで、
$ cat /etc/anacrontab
とすると、
-----
1       65      cron.daily              run-parts /etc/cron.daily
7       70      cron.weekly             run-parts /etc/cron.weekly
30      75      cron.monthly            run-parts /etc/cron.monthly
-----
なので、起動後65分たつと
run-parts /etc/cron.daily
が、開始するのかと思い、待っていますと、その時間あたりに、
hard disk の音が数秒続きましたので、この音が、
run-parts /etc/cron.daily
ではと思いました。
しかしながら、その後
$ /etc/rc.d/init.d/anacron status
とすると、やはり、
実行中...

のままでした。
そこで、システムを再起動すると、
$ /etc/rc.d/init.d/anacron status
anacronは停止しています

となりました。
そこで私の仮定は、システム起動時にanacronが実行されて、行うべき仕事が
存在するときには、anacron は終了せずに実行中のままになり、
仕事が終わっても、そのまま実行中で維持される。
そして、システム起動時にanacronが実行されて、行うべき仕事が
存在しないときには、anacron はすぐに終了する。
となりました。

-----
-----
ところで、
$ slocate file名
とすると、冒頭に、
warning: slocate: warning: database /var/lib/slocate/slocate.db' is more than 8 days old

という、warning が現れます。しかし、
$ ls /etc/cron.daily
0anacron*   makewhatis.cron*  rpm*           tetex.cron*
logrotate*  postfix*          slocate.cron*  tmpwatch*

となり、slocate の database は毎日anacron により更新されているのではと
思います。
なぜ上記表示が出てしまうのでしょうか?

なお、
# slocate -u
とすると、カーソルが次に行に移って、hard disk が駆動して、
プログラムを実行しているようですが、その後、
hard disk の駆動が停止した後も、カーソルがそのまま点滅したまま維持され続け、
上記 command は完了しません。しかたないので、gnome term 自体を終了し
ました。そして、この後、
$ slocate file名
とすると、やはり、冒頭に、
warning: slocate: warning: database /var/lib/slocate/slocate.db' is more than 8 days old
が現れます。