Monday, March 05, 2007

SCO UNIX and DST

Initially, I told everybody that SCO UNIX 5.0.6 and older systems has no patch and to try ntpdate. Forget NTP; it won’t help us. For an explanation why not, see the very end. However, there is a workaround for 5.0.6, 5.0.5, and perhaps all 5.0.x systems.

For my UNIX clients, the following notes apply. All patches listed below are installed with “custom” so you can run “custom” to see if the required patch is already present.

SCO 6.0.0 – oss706c and mp2
SCO 5.0.7 – mp5
SCO 5.0.6 – workaround, see below

SCO 6.0.0

SCO 6.0.0 must have MP2 installed before applying the DST patch (oss706c). If the client already has MP2 installed, then you have a small patch, only 4.5MB in size. This can be applied while the system is up, and the patch takes effect after rebooting. If you have to install MP2 as well, then you should probably ship a CD. MP2 is 332 MB compressed. After applying both MP2 and oss706c, the system will need to be rebooted.

SCO 5.0.7

SCO 5.0.7 requires MP5. MP5 is 245 MB compressed, so you may want to ship a CD. This can be applied while the system is up. After applying MP5, the system will need to be rebooted.

SCO 5.0.6 and prior

SCO 5.0.6 and prior versions of UNIX do not have an official patch. Instead, a custom time zone can be configured to adjust for DST. For more information, look at the man page on timezone (man timezone). I tested this on a 5.0.6 and 5.0.5 and I suspect it will work on 5.0.4.

To set the custom time zone, edit /etc/TIMEZONE and append the following to the TZ variable:

,M3.2.0,M11.1.0

So, if the file /etc/TIMEZONE had TZ=EST5EDT, make it TZ='EST5EDT,M3.2.0,M11.1.0'

Manually adjusting for DST

Of course, people can always adjust the time manually. The easiest way is probably to login as root and run “asktime” to set the time. Or, the client can also shutdown and reboot, and enter the time during the startup process.

NTP time synchronization

Using ntpdate in cron will sync your system time to UTC. Note that ntpdate will not adjust time if the difference is greater than two hours. Note that ntpdate will not correctly set the date/time in the event of a DST change.

Below is a command using a public time server that should work on systems
with an Internet connection and name resolution. Make sure the system time is at least CLOSE to correct before you begin. You can test the connection with:

ntpdate hydrogen.cert.ucr.edu

If that works, you can automate it. In root's crontab, input the following to automate this.

0 3 * * * /etc/ntpdate hydrogen.cert.ucr.edu

Why NTP won’t work for DST changes

NTP synchronizes clocks on different computers based on the UTC. UTC does not change regardless of DST. For instance, the Eastern Standard Time in the Unites States is five hours behind the UTC time when DST is not active and four hours behind when the US is observing Daylight Savings Time. DST configuration is specific to your timezone, so NTP does not help.

No comments:

Post a Comment