Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cron job in a different timezone

Is there a way of setting up a cronjob for a specific timezone?

My shared hosting is in USA (Virginia) and I am in UK. If I set a cron job to be executed at 1600 hrs every friday, then it will execute when its 1600 in Virginia.

I was wondering if I can setup my cronjob in such a way that it understands which timezone to pick. I am not too worried about daylight saving difference.

I have asked my shared hosting providers about it and they said I should be able to set the timezone in some cron ini files, but I could not find any.

like image 485
nasaa Avatar asked Nov 08 '12 13:11

nasaa


People also ask

Which timezone does cron use?

All cron jobs use UTC time.

Does cron follow UTC?

Cron by default uses UTC time zone. How to set it up to use Local time (say CST) in the cron expression (for cron schedule).

What is * * * * * In Cron job?

What does * mean in Cron? The asterisk * is used as a wildcard in Cron. * sets the execution of a task to any minute, hour, day, weekday, or month.

What is CRON_TZ?

The CRON_TZ specifies the time zone specific for the cron table. User type into the chosen table times in the time of the specified time zone. The time into log is taken from local time zone, where is the daemon running. So if you add this at the top of your cron entry: CRON_TZ=Europe/London. You should be good.


2 Answers

I think that you should check

/etc/default/cron

or just type

Crontab cronfile

and you should find

TZ=UTC

This should be changed (for example America/New_York). Second way is set in cron example

5 2 3 * * TZ="America/New_York" /do/command > /dev/null 2>&1
like image 102
Bartosz Kowalczyk Avatar answered Sep 21 '22 08:09

Bartosz Kowalczyk


You can use the CRON_TZ environment variable, excerpt from man 5 crontab on a CentOS 6 server:

The CRON_TZ specifies the time zone specific for the cron table. User type into the chosen table times in the time of the specified time zone. The time into log is taken from local time zone, where is the daemon running.

So if you add this at the top of your cron entry:

CRON_TZ=Europe/London

You should be good.

like image 31
AlexT Avatar answered Sep 19 '22 08:09

AlexT