问题
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 -e
via 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