ntp faz bem em manter seu computador configurado no momento certo, e faz isso sem nunca executá-lo de trás para frente - o que seria uma coisa ruim para alguns programas que você pode estar executando.
Ele não apenas ajusta o tempo, mas faz ajustes contínuos em como seu computador mantém o tempo para que seu tempo não seja apenas certo em um instante, mas fique próximo do tempo real ( em dezenas de milissegundos, não dezenas de minutos). Ajusta a fase (o tempo) e a taxa (a rapidez com que o relógio "toca"). ntp nunca faz o relógio correr para trás. Pode levar muito tempo para estabelecer a velocidade do relógio após a reinicialização, para que o ntp acompanhe o desvio em um arquivo chamado /var/lib/ntp/ntp.drift. Como você não está executando o ntp, nada disso acontece.
Ontp não é tão popular quanto antes porque os laptops e desktops e as máquinas virtuais impedem que ele seja executado em parte do tempo. Ele é projetado para ser executado de vez em quando em seu próprio horário em um computador que está sendo executado o tempo todo e no mundo real, onde o tempo é contínuo. É provavelmente por isso que não é instalado por padrão na estação de trabalho moderna. [Para VMware, consulte esta]
Em vez disso, ntpdate é executado quando a interface de rede é ativada. Quando um laptop adormecido é despertado, ele restabelece a conexão de rede, o ntpdate é executado e a hora é novamente correta. Se o relógio de hardware da máquina é bastante preciso, e a rede é ativada com bastante frequência, geralmente é bom o suficiente para a maioria das pessoas.
Por alguma razão, o estoque ntpdate não funciona sempre. Use ntpdate-debian neste caso. A sintaxe para o for.mer é algo como ntpdate ntp.ubuntu.com , pois o último é ntpdate-debian
Na falta de uma dessas coisas, ntp é a melhor maneira de manter o tempo.
Os sistemas são projetados para fazer uma interrupção do temporizador de vez em quando e atualizar sua ideia do tempo a cada interrupção. Contanto que o cronômetro de hardware esteja executando a especificação. o tempo não se move muito. Se o cronômetro de hardware não estiver, o tempo vai se arrastar mais (todos os relógios se movem um pouco, pela mesma razão que o relógio de pulso ou bateria controlada. Os relógios conectados à parede são sincronizados com a freqüência e fase mantidas por sua empresa de energia).
A maioria dos temporizadores de computador é controlada por um circuito oscilador controlado por cristal em seus circuitos integrados. Apesar do cristal, eles correm mais rápido e mais lento, dependendo do ambiente, principalmente a temperatura. A menos que você tenha algum tempo de sincronização de software instalado que não conhecemos, eu diria que o relógio do seu sistema está fora da especificação.
Se você executasse ntp por um dia ou dois, ele armazenaria informações em /var/lib/ntp/ntp.drift que indicariam quanto teria de ajustar a taxa na qual seu tempo de sistema operacional avança por interrupção a fim de combinar sua taxa de relógio de hardware com o tempo real que adquire através da internet. Manter o arquivo igual e apenas iniciar e parar ntp após um minuto depois disso (supondo que você mantenha o arquivo /var/lib/ntp/ntp.drift inalterado) pode fazer muito para corrigir isso se os conjuntos ntp do bias do relógio permanecem após o ntp terminar. Não tenho certeza desse detalhe.
Eu suspeito que o valor ntp seja armazenado em /var/lib/ntp/ntp.drift seja muito diferente do meu.
Se esta máquina continuar funcionando o tempo todo, o melhor é instalar o ntp e deixar que ele faça o que quiser. Veja as outras respostas para obter detalhes sobre como acertar o tempo antes de iniciá-lo. Eu corro ntp na minha área de trabalho e ntpdate no meu laptop.
Uma interessante alternativa possível, o adjtimex, é mencionado em esta resposta por nealmcb.
Se o seu sistema não for mantido em execução o tempo todo, executar ntpdate no momento da inicialização parece ser uma boa opção.
Atenção algum software pode enlouquecer se a hora do computador voltar ao normal. A execução da ntpdate após a inicialização pode fazer com que isso ocorra.
Uma pegadinha, isso pode ser um problema: se bem me lembro, ntp espera que o tempo não fique muito longe. Se for, tentando agir de maneira conservadora, o ntp não ajustará a hora. Se você está nesta situação, faz sentido fazer ambos - executar o ntpdate na inicialização para obter o tempo inicializado na hora certa, e então deixar o ntp rodar para manter correndo para fornecer cronometragem precisa. Em particular, uma bateria ruim da placa-mãe pode causar esse erro, assim como a inicialização de um computador que está desligado há muito tempo.