Для установки времени в CMOS используется утилита hwclock из свежего комплекта util-linux. Если на вашей машине стоит только Linux, то очень удобно записать в CMOS время по Гринвичу, а в одном из стартовых скриптов сказать
/sbin/hwclock --hctosys --utc
Если на машине стоит, кроме Linux, какая-то другая операционная система, то в CMOS пишется местное время, а в стартовом скрипте пишется просто
Для того, чтобы программы правильно определяли местное время (с учетом летнего времени и тому подобных обстоятельств), надо:
убрать из стартовых скриптов всякие упоминания переменной окружения TZ, если таковые имеются;
сделать так, чтобы файл /etc/localtime был правильной символической ссылкой на соответствующий файл из /usr/share/zoneinfo, например,
rm -f /etc/localtime ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
В Red Hat-based системах параметр utc задается в файле /etc/sysconfig/clock. Непосредственно редактировать стартовые скрипты не нужно. Кроме того, этот параметр и timezone можно задать с помощью утилиты timeconfig. Проверить правильность задания времени можно, запустив сначала ``date-- (должна показать правильное местное время), а затем ``date --utc-- (должна показать правильное время по Гринвичу). Для того, чтобы синхронизировать время с часовыми серверами в Internet, сходите на ntp.org. Там раздается пакет xntpd и приведен список публично доступных часовых серверов в Интернете. Из всего комплекта xntpd вам потребуется лишь программа ntpdate. Периодически, например, при каждом звонке провайдеру, выполняйте, например, такую команду:
/usr/local/bin/ntpdate ntp1.gamma.ru
Если на вашей машине под Linux установлена Samba, то клиенты под MS Windows могут синхронизировать время с этой машиной с помощью команды
C:> NET TIME \LINUXBOX /SET /YES
("Alexey Mahotkin" mailto:alexm@hsys.msk.ru)