[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:22840] Re: about anacron (Re: abount crontab)



松永です。

> > よく考えたら、/etc/cron.d/anacron って結局は crontab に書いたのと同じ
> > 効果があるんですよね?そうすると、電源が落ちている間に所定の時間が来て
> > も cron は動かないから anacron -s も動かないんですね。

> ということで、調べたら
> p1 9:00 sakura:[202] ls -l /var/log/syslog*
> -rw-r-----    1 root     adm         44955 Jun 13 09:08 /var/log/syslog
> -rw-r-----    1 root     adm        183709 Jun 12 09:25 /var/log/syslog.0

> あれ?変だな。毎朝7時半に hibernation をかけるといっても実際には 7時28 
> 分くらいに hibernation をかけている日もあるはずなんですが、平日には必
> ず anacron は働いているように見えます。ここ10日くらいにはそんな日はな
> かったということかしら。

なんて、悪い目をしているんでしょう。こう書いている当日に cron.daily が
動いていないじゃないですか。syslog.0 は cron.daily が動いた日を示して
いるんだから、13日には動いていないんですね。

> > tshm> だったら、/etc/apm/event.d/ に 起きた(resumeした)とき anacron 
> > tshm> をよぶスクリプトを置けばいいですね。

ということで、/etc/apm/event.d に “/etc/init.d/anacron -s"
と書いたファイルを置き、/etc/init.d/anacron は slink のものをコピーし
て、中の7時半という指定を6時に書き換えました。

これで、/etc/cron.daily は朝 hibernation から戻ってから5分後に動くよう
になりました。(/etc/anacrontab をいじれば、この5分は変更できます)

夜中過ぎにしばらく hibernation をかけて戻しても crondaily が起動するこ
とはありませんし、日に何回も hibernation をかけても crondaily が動くの
は1回だけです。

さて、root 権限で動くものはこれでいいんですが /etc/cron.d/postgresql
とかも、anacron の管理下に置こうと思ったら、これは

0 4 * * * postgres	[ -x /usr/lib/postgresql/bin/do.maintenance ] && /usr/lib/postgresql/bin/do.maintenance -a

ということで、postgres の権限で動く必要があるんですね。

anacron から呼ばれるプログラムを root 以外の権限で動かすにはどうしたら
いいんでしょうか。

昔の crontab には owner field が無かったんですが、それでもシステム管理
をしていた記憶があるんで、方法はあるはずなんですがすっかり忘れてしまい
ました。