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

Re: question about cron and anacron [solved]



On Fri, Apr 13, 2007 at 03:23:17PM -0600, Paul E Condon wrote:
> On Fri, Apr 13, 2007 at 11:05:02PM +0200, Florian Kulzer wrote:
> > On Fri, Apr 13, 2007 at 13:09:43 -0600, Paul E Condon wrote:
> > > When I moved to Etch, I noticed something strange, and
> > > am looking for an explanation. My cron job for doing 
> > > daily backups started doing the job at the wrong time.
> > > 
> > > It turns out that the move to Etch somehow installed
> > > anacron on a system that is supposed to be left on and
> > > it was anacron that was actually running the script.
> > > 
> > > But how? I look at the code in /etc/crontab and in
> > > /etc/cron.daily/0anacron and I think I see that it
> > > is impossible for anacron to be run on a daily basis:
> > > 
> > > /etc/anacron contains a line:
> > > 25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
> > 
> > Are you sure this snippet is from /etc/anacrontab? It looks like a line
> > from /etc/crontab to me. (I cannot find "/etc/anacron" anywhere in
> > Debian, so I assume you mean "...tab".)
> 
> Sorry. It is from crontab. And, it shows that if anacron is installed
> run-parts is not run for cron.daily (I think). 
> 
> > 
> > > This line invokes run-parts only if anacron is _not_ installed. And,
> > > 
> > > $ ls /etc/cron.daily/
> > > 00test-env  10chkpnt  aptitude      exim4-base  logrotate  modutils  standard
> > > 0anacron    apt       bsdmainutils  find        man-db     samba     sysklogd
> > > 
> > > And,
> > > script 0anacron contains:
> > > #!/bin/sh
> > > #
> > > # anacron's cron script
> > > #
> > > # This script updates anacron time stamps. It is called through run-parts
> > > # either by anacron itself or by cron.
> > > #
> > > # The script is called "0anacron" to assure that it will be executed
> > > # _before_ all other scripts.
> > > 
> > > test -x /usr/sbin/anacron || exit 0
> > > anacron -u cron.daily
> > > <end>
> > > 
> > > But how is this script executed usefully? Since cron doesn't do
> > > run-parts /etc/cron.daily if anacron is installed?
> > > 
> > > Further, it appears that cron.daily scripts _are_ being run daily, ---
> > > at 7:35am.  Why 7:35am? Where is that time set? It is _not_ a time
> > > that is in /var/spool/anacron. I can't think of anywhere else to look.
> > 
> > Do you by any chance boot the system around 7:30am every day? Anacron's
> > default delay for the daily jobs is 5 minutes. 
> > 
> > > There is something, somewhere, that is doing this. Where?
> > 
> > This is how I understand it:
> > 
> > /etc/init.d/anacron starts anacron as a daemon in the background during
> > boot (unless the system is running on batteries at that moment). This
> > daemon handles all the jobs specified in /etc/anacrontab. The default
> > configuration causes anacron to take over all daily, weekly and monthly
> > cronjobs. Anacron determines how many days have passed since each of
> > these jobs was run the last time. If this period is longer than what is
> > specified in anacrontab then anacron will start the job after a certain
> > delay (which is also defined in anacrontab). The "0anacron" jobs make
> > sure that the timestamps in /var/spool/anacron get updated whenever
> > cronjobs are executed. 
> > 
> > The "test -x /usr/sbin/anacron" statements in /etc/crontab make sure
> > that cron does not interfere with anacron, even though cron still takes
> > care of the hourly jobs itself.
> > 
> > -- 
> > Regards,
> >           Florian
> > 

I've discovered a feature of Debian cron that I think is not present
in traditional Vixie cron, namely the directory /etc/cron.d
It is explained in some additions to the traditional cron man page.
It is a line in this directory that starts anacron at 7:30am on my
computer. All set up as part of a standard install. It works, and
not that I know how, I can make it do its stuff when I want.


-- 
Paul E Condon           
pecondon@mesanetworks.net



Reply to: