Cron job in a different timezone

余生颓废 提交于 2019-12-29 06:15:11

问题


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.


回答1:


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



回答2:


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.




回答3:


If you want to set different timezone for your particular cronjob, execute crontab -evia ssh and add

TZ=Europe/Moscow

before every cronjob.

Full article here




回答4:


To expand on AlexT's answer:

CRON_TZ="Europe/London"

is the answer.

p.s. If anyone is here looking for timezone fixes for GoDaddy, I recommend putting...

export TZ="Europe/London"

...in your .bashrc so that your console runs in your timezone.



来源:https://stackoverflow.com/questions/13289751/cron-job-in-a-different-timezone

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!