Uma maneira simples é usar o comando date
date -s @<seconds-since-1970>
Se você quiser fazer isso em C ++, veja man settimeofday
.
Eu tenho um sistema de 3 ou 4 máquinas Linux Ubuntu diferentes que eu gostaria de sincronizar com o tempo. Meu plano é usar um deles (vamos chamá-lo de mestre) como o servidor NTP que serve o tempo para as outras três máquinas (vamos chamá-las de crianças).
No entanto, eu gostaria de obter o primeiro horário UTC do mestre e usar servidores on-line não é uma opção (sem internet).
Atualmente estou lendo o horário UTC de um dispositivo GPS on-board via C ++. É possível definir a hora do sistema neste processador usando C ++ e a hora UTC fornecida por um GPS e, em seguida, usar o NTP para sincronizar esse tempo com todos os outros PCs filhos?
Uma maneira simples é usar o comando date
date -s @<seconds-since-1970>
Se você quiser fazer isso em C ++, veja man settimeofday
.
Sim, não é apenas possível, mas relativamente simples. Existem vários "percursos" e tutoriais disponíveis ref 1 , ref 2 que mostrará como fazer isso.
Algumas outras ideias:
considere usar chronyd
em vez de ntpd
. O OpenNTPd também seria uma boa escolha, exceto pelo fato de que ele ignora longos de segundos ... mas se você não se importa com isso, é fácil de usar e administrar.
a precisão do tempo do GPS pode variar um pouco de um receptor para outro.
Tags time ntp c++ ubuntu timestamps