Managing Batch Jobs for Several Time Zones?
sporty asks: "I have one machine, a unix box, that serves many time zones at once. Because of this, everything is stored in GMT. Even the system clock is set relative to GMT. The problem is determining when midnite is. I need to run certain jobs, via cron or similar, so that something runs at midnite in that timezone. Anyone have this situation before?"
-Find out what the GMT offset for each time zone is.
-Use that to figure out what GMT time is midnight for each time zone.
-Make a cron job for each time zone to run when it is midnight in that time zone.
Unless there is something about the question I don't understand...?
no thanks
Don't know if this advice applies to this guy or not, because he might truly have a need to run at exactly midnight. But please, run your cron jobs at randomly chosen times, instead of exactly on the hour. That way we can spread the load (machine and network) better. Thank you, have a nice day.
Right now, the time zone I'm in respects daylight savings. Midnite is gonna shift in the fall, as well as in april. Places like england or or barbados celebrate it at different times or not at all.
Writing a job managing job on top of a job managing job (at on cron) could get messy. Especially so when day light savings hits for various places.
-
ping -f 255.255.255.255 # if only
i.e.
Envy my 5 digit Slashdot User ID!
Check it out, it converts between timezones automagically, respects daylight savings, and all of the fun stuff.
It's really a lifesaver, here is a link DateTime.pm
Everybody has a purpose in life, maybe mine is to lurk in slashdot.
However, there's another simple solution. Again, based on the fact that there's really only two times that can be local midnight. Simply run a script like this at the earlier of the two times:Note that hacking cron to respect timezones will result in the same bug as my earlier approach. So, this approach is really the cleanest I can see.