Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Daylight Savings and Cron

Tags:

dst

cron

If Cron has a job scheduled to run at 2 am and one at 3 am how would those jobs be affected by daylight savings time?

When the time shifts back an hour does the time go from 2:59:59 am to 2:00:00 am directly? Meaning that the 2 am job would run twice and the 3 am job would run once? Or is does the time first change to 3:00:00 am and then 2:00:00 am causing both jobs to run twice?

When the time shifts forward an hour does the time go from 1:59:59 am to 3:00:00 am causing the 2 am job to not run and the 3 am job to run once? Or does the time shift from 2:00:00 to 3:00:00 am causing both jobs to run once?

In short what I am wondering is when gaining an hour does the 3 am hour happen once or twice and and losing an hour does the 2 am hour happen at all. I have not been able to find anything about this when looking on Google.

like image 552
Joe W Avatar asked Nov 02 '12 13:11

Joe W


People also ask

Does Daylight Savings Time affect circadian rhythm?

Sleep habits Most noticeably, Daylight Saving can throw off sleep cycles. Your circadian rhythm is your body's natural 24-hour cycle. A disruption in this rhythm, like Daylight Saving, is typically environmental, not genetic.

How do I change the timezone in cron?

Thankfully, you can configure a specific timezone for your Cron job as follows: First, you need to export the TZ variable in your Shell script before any other Shell entries. Next, access your crontab and use the crontab environment variable CRON_TZ at the start of the crontab file.

Do you actually get an extra hour of sleep during daylight savings?

Since DST switches usually occur at night to avoid disrupting public life, they snatch away an hour of our usual sleeping time, forcing us to adjust our body clocks. If you set your alarm to the same time as before the clock change, you will sleep an hour less.

Are there more heart attacks after daylight savings time?

A 2019 report found a higher risk of heart attack after both time changes, but particularly during daylight saving. Interruptions to circadian rhythm can also impair focus and judgment. A 2020 study found fatal traffic accidents increased by 6% in the United States during daylight saving time.


1 Answers

The answer would be dependent on the variant/extension of cron you are using. Some variants do not handle the Daylight Saving Time, leading to missing jobs and twice run of the job.

If you are using the Paul Vixie cron, then it does handle the DST changes. As per the cron man page:

cron checks each minute to see if its spool directory's modtime (or the modtime on /etc/crontab) has changed

And further, with reference to Daylight Saving Time (The 2nd para clearly explains your answer)

Daylight Saving Time and other time changes

   Local time changes of less than three hours, such as  those  caused  by    the  start or end of Daylight Saving Time, are handled specially.  This    only applies to jobs that run at a specific time and jobs that are  run    with  a    granularity  greater  than  one hour.  Jobs that run more fre-    quently are scheduled normally.     If time has moved forward, those jobs that would have run in the inter-    val that has been skipped will be run immediately.  Conversely, if time    has moved backward, care is taken to avoid running jobs twice.     Time changes of more than 3 hours are considered to be  corrections  to    the clock or timezone, and the new time is used immediately. 

So, whenever the time shifts may be 2:59:59 or at 3:00:00, cron's taking care of the job runs by handling the situation and running only the missed ones and avoids running the already ran jobs.

like image 139
mtk Avatar answered Sep 28 '22 19:09

mtk