Eu tive o mesmo problema em um sistema Debian Lenny (era uma instalação antiga do Ubuntu 7.04 antes disso) devido a um chipset esquisito na placa-mãe de uma década. Aqui está a minha solução cron ; para os meus propósitos, duas vezes por dia, mantém-no suficientemente sincronizado e, uma vez por semana, sincroniza e guarda no relógio do hardware (que é bastante sólido no meu sistema).
Coloque isso em /etc/cron.d/ntpsync :
# /etc/cron.d/ntpsync: run ntpdate-debian twice daily, sync hwclock once weekly
# run at 11:23 (am & pm) (update system clock)
23 11,23 * * * root test -x /usr/sbin/ntpdate-debian && /usr/sbin/ntpdate-debian 2>&1 | logger -i
# run at 11:59pm fridays (update system clock & save to hwclock)
59 23 * * 5 root test -x /usr/sbin/ntpdate-debian && test -x /etc/init.d/hwclock.sh && /usr/sbin/ntpdate-debian && /etc/init.d/hwclock.sh restart 2>&1 | logger -i
Isso usa a sintaxe padrão crontab para definir os horários e os dias, para que possa ser minimamente se você desejar uma sintonia fina. O "logger -i" no final da cadeia de comando envia a saída para os recursos de registro do syslog do cron .