On 2024/07/03 17:56, K R wrote: > Hi, > > On Wed, Jul 3, 2024 at 12:31 PM Jason McIntyre <j...@kerhand.co.uk> wrote: > > > > On Wed, Jul 03, 2024 at 10:52:46AM -0300, K R wrote: > > > >Synopsis: crontab(5) clarification: "~" field is evaluated once at > > > >install time > > > >Category: documentation system amd64 > > > >Environment: > > > System : OpenBSD 7.5 > > > Details : OpenBSD 7.5-current (GENERIC) #150: Wed Jun 26 > > > 20:30:54 MDT 2024 > > > > > > dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC > > > > > > Architecture: OpenBSD.amd64 > > > Machine : amd64 > > > >Description: > > > The crontab(5) manpage could be more explicit about the fact > > > that a "~" char only gets evaluated to a random value once, at > > > table install time. > > > > > > From the EXAMPLES section: > > > > > > # run hourly at a random time within the first 30 minutes of the > > > hour > > > 0~30 * * * * /usr/libexec/spamd-setup > > > > > > "run hourly at a random time" could me interpreted as "run > > > hourly, with a different random minute every hour". > > > This is not the case and may be unexpected for some users. > > > > > > >How-To-Repeat: > > > # some initial random minute, repeating itself every hour > > > ~ * * * * date >> /tmp/LOG > > > > > > >Fix: > > > Just clarify that "~" will be evaluated at table install time > > > and then be reused. > > > > > > Thanks, > > > --Kor > > > > > > > hi. > > > > i agree it might not be totally clear, initially, that it works that > > way. but if you think about it, if it ran at, for example, different > > minute intervals, then you could have something run at 59 minutes past > > the hour, and then at 1 minute past the next hour - a difference of two > > minutes. that would hardly qualify as "hourly". > > > > i think the doc provides enough of a hint ("a radom value ... may be > > obtained") when combined with that logic. i'm not sure that adding the > > extra text to try and explain that would be worth it. if you feel > > unconvinced by that, propose a text which you think improves it. but i'm > > not sure it's needed. > > I believe a single sentence could be added to clarify this. This > paragraph is the first place where "~" is explained: > > from: > > A random value (within the legal range) may be obtained by using the ‘~’ > character in a field. The interval of the random value may be specified > explicitly, for example “0~30” will result in a random value between 0 > and 30 inclusive. If either (or both) of the numbers on either side of > the ‘~’ are omitted, the appropriate limit (low or high) for the field > will be used. > > to: > > A random value (within the legal range) may be obtained by using the ‘~’ > character in a field. The interval of the random value may be specified > explicitly, for example “0~30” will result in a random value between 0 > and 30 inclusive. If either (or both) of the numbers on either side of > the ‘~’ are omitted, the appropriate limit (low or high) for the field > will be used. The '~' character gets expanded to a random value > only once, at table install time.
"only once, at table install time" doesn't seem quite clear to me. In particular consider "only once" when you edit the crontab once, then edit it again. How about this? The '~' character gets expanded to a random value when the .Nm crontab is loaded. "The allowed values for the fields" above misses the various possibilities involving ~ too.