On Fri, Jan 06, 2023 at 12:58:48AM +0100, Rachel Roch wrote:

> 
> 
> 
> 5 Jan 2023, 18:24 by purushar...@gmx.com:
> 
> > Namaste Rachel, Theo(s),
> >
> >> Sent: Thursday, January 05, 2023 at 5:50 PM
> >> From: "Theo de Raadt" <dera...@openbsd.org>
> >> To: "Theo Buehler" <t...@theobuehler.org>
> >> Cc: "Rachel Roch" <rr...@tutanota.de>, "Misc" <misc@openbsd.org>
> >> Subject: Re: Is CRONTAB(5) random really random ?
> >>
> >> Theo Buehler <t...@theobuehler.org> wrote:
> >>
> >> > On Thu, Jan 05, 2023 at 06:15:43PM +0100, Rachel Roch wrote:
> >> > > According to the docs :
> >> > > 
> >> > > > A random value (within the legal range) may be obtained by using    
> >> > > > the ???~??? character in a field.
> >> > 
> >> > The random numbers are drawn once and then repeated regularly. This
> >> > behavior has always bothered me but never enough to spend the time
> >> > needed to fix it (it's not immediately obvious how to do it). A
> >> > workaround is to use a 
> >> > 
> >> >  sleep $((RANDOM \% 512)) && run_whatever
> >> > 
> >> > construct. The number to the right of the modulo should be a power of 2
> >> > to avoid modulo bias.
> >>
> >> Any solution would need to be careful, so that a operation doesn't run
> >> multiple times in an hour.  Each column should be '0 + random % range',
> >> but multiple columns contain ~, it gets weird.
> >>
> >
> > The following thread may be helpful:
> >
> > "Regarding randomized times in crontab"
> > https://marc.info/?l=openbsd-misc&m=158705405304672&w=2
> >
> > Dhanyavaad,
> > Dharma Artha Kama Moksha
> >
> 
> Thank you all for your insightful input, looks like the $RANDOM prefix idea 
> is the only quick-fix to this.
> 
> I didn't realise the random value was only set once. Maybe someone should 
> update the man page accordingly ?
> 

To be clear, it is "once per ~ occurrence in the crontab", not once
for all ~ or once per crontab line.

        -Otto

Reply via email to