Re: [DNG] Crontab depends on Anachron which is not installed by default?

2020-10-10 Thread Marjorie Roome via Dng

On Sat, 2020-10-10 at 16:35 +0100, g4sra via Dng wrote:
> If anacron is installed, it will check for any outstanding jobs at
> boot and run them. 
> [snip]
> Laptops are subject to power management settings which may also stop
> anacron from running.
>  
If you use sleep or hibernate these can cause issues for anacron and
the jobs that it schedules (whether on a laptop or desktop,on a server
that runs continuously you wouldn't use anacron).

If you use pm-utils (pm-hibernate, etc). you can stop/start anacron
when you sleep/wake the PC.

I hibernate mine overnight, rather than shut it down. When I wake it
the following day it will then runs anacron. Anacron updates itself to
the current day and then starts the jobs in etc/cron.daily and when
appropriate etc/cron.weekly and /etc/cron/monthly. If I don't enable
this and the default run time for anacron is when I'm sleeping e.g.
05:30 then it will never execute.

Obviously once you'vwe woken it you then need to have the machine stay
awake until the jobs have run.

To get pm-utils to do this create file /usr/lib/pm-utils/95anacron,
with content:

#!/bin/sh

# This script makes anacron jobs stop/start when a workstation
# enters/exits a suspended/hibernated state.
# 

case $1 in
resume|thaw)
/usr/sbin/invoke-rc.d anacron start >/dev/null   
;;
suspend|hibernate)
/usr/sbin/invoke-rc.d anacron stop >/dev/null   
;;
esac

-- 
Marjorie

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


Re: [DNG] Crontab depends on Anachron which is not installed by default?

2020-10-10 Thread g4sra via Dng
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
@monthly15  cron.monthlyrun-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


[DNG] Crontab depends on Anachron which is not installed by default?

2020-10-10 Thread Mike Tubby

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.  However /etc/crontab doesn't need anacron for 
cron.hourly:


# /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