On 10/10/2020 15:38, Mike Tubby wrote:
> All,
> 
> I've just discovered that my various Devuan systems aren't running cron.daily 
> or cron.weekly tasks because /etc/crontab performs a test on anacron being 
> present.
Not quite...

cron will NOT run if anacron IS installed AND IS executable.


If anacron is not installed, cron jobs will be skipped if the system is powered 
down at the time the job is due to run.

If anacron is installed, it will check for any outstanding jobs at boot and run 
them. 
NOTE: this depends on a correct clock and filesystem timestamping ('noatime' 
will break it).
Check your Devuan systems for the above, if anacron is not running on a sever, 
this is the most probable cause.
Laptops are subject to power management settings which may also stop anacron 
from running.
 

>  However /etc/crontab doesn't need anacron for cron.hourlyIt is still there 
>as anacrontab is not configured for /etc/cron.hourly by default
If it is missed by being powered down, worst case is a 59 miniute wait and it 
will be run.

cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root

# These replace cron's entries
1       5       cron.daily      run-parts --report /etc/cron.daily
7       10      cron.weekly     run-parts --report /etc/cron.weekly
@monthly        15      cron.monthly    run-parts --report /etc/cron.monthly



24/7/365 Servers usually don't benefit from anacron
Laptops & Workstations at the mercy of power cycling Users usually do

> 
> # /etc/crontab: system-wide crontab
> # Unlike any other crontab you don't have to run the `crontab'
> # command to install the new version when you edit this file
> # and files in /etc/cron.d. These files also have username fields,
> # that none of the other crontabs do.
> 
> SHELL=/bin/sh
> PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
> 
> # Example of job definition:
> # .---------------- minute (0 - 59)
> # |  .------------- hour (0 - 23)
> # |  |  .---------- day of month (1 - 31)
> # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
> # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR 
> sun,mon,tue,wed,thu,fri,sat
> # |  |  |  |  |
> # *  *  *  *  * user-name command to be executed
> 17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
> 25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts 
> --report /etc/cron.daily )
> 47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts 
> --report /etc/cron.weekly )
> 52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts 
> --report /etc/cron.monthly )
> 
> 
> Why do we need anacron at all?  Surely we can just do:
> 
> 17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
> 25 6    * * *   root    cd / && run-parts --report /etc/cron.daily
> 47 6    * * 7   root    cd / && run-parts --report /etc/cron.weekly
> 52 6    1 * *   root    cd / && run-parts --report /etc/cron.monthly
> 
> 
> ... or am I missing something?
> 
> 
> Mike
> 
> 
> 
> 
> _______________________________________________
> Dng mailing list
> Dng@lists.dyne.org
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

_______________________________________________
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to