Linux define tempo a partir da rede no login

0

Na minha caixa Ubuntu 10.04 eu (um usuário, não root) pode emitir

sudo net time set

e funciona muito bem.

Prefiro que a caixa obtenha o tempo líquido de forma mais regular, ou pelo menos sempre que iniciar sessão. Por isso, tentei adicionar net time set a / etc / profile . Isso falha. Eu adicionei estrofes que parecem

user ALL=(ALL) NOPASSWD: /usr/bin/net

para / etc / sudoers (usando visudo ). Não ajudou.

Eu nunca toquei em cron , então não tenho idéia de como adicionar uma guia chron. (parece oximorônico depender da hora do sistema para redefinir a hora do sistema).

  1. Qual é a melhor maneira de fazer isso?
  2. Se for uma tarefa do cron, agradeço um exemplo rápido.
  3. Mesmas perguntas, mas para o comando service dhcp3-server restart ?

(sim, minha caixa recebe seu endereço por dhcp, mas seu servidor dhcp controla 4 gigabit enet cards conectados a câmeras de alta velocidade. Às vezes, no login? bootup? o servidor dhcp me deixa vendo apenas 1 câmera.)

Obrigado antecipadamente.

    
por Wes Miller 10.01.2012 / 18:25

2 respostas

1

(Sim, estou adicionando uma segunda resposta.)

A partir de sua descrição, você adicionou a linha apropriada a /etc/sudoers , mas não está chamando sudo in /etc/profile .

O comando em /etc/profile precisa ser:

sudo net time set

Observe que isso será executado toda vez que qualquer conta entrar. É isso que você quer, ou faria mais sentido colocar o comando em $HOME/.profile ?

Para torná-lo uma tarefa do cron, você pode adicionar algo assim:

0 * * * * *      sudo net time set

para, digamos, foo.txt e, em seguida, crontab foo.txt . Depois disso, crontab -l mostrará seu (s) trabalho (s) cron atual. Com os parâmetros fornecidos, o trabalho será executado uma vez por hora; man 5 crontab e ajuste conforme necessário. Pode haver alguns problemas porque as tarefas do cron são executadas com um ambiente mínimo, mas não acredito que /usr/bin/net dependa de quaisquer variáveis de ambiente.

Note que, ao contrário de ntpd , isso pode fazer com que o relógio do sistema salte para trás, o que pode causar problemas.

    
por Keith Thompson 12.01.2012 / 00:46
1

Não se incomode.

A maneira usual de manter o relógio do sistema sincronizado é ntpd . Deve ser instalado e configurado por padrão no Ubuntu. Você tem um processo ntpd em execução? O relógio do seu sistema está incorreto?

EDITAR:

Do seu comentário em minha outra resposta, parece que você tem um servidor NTP que pode usar.

Você já deve ter o software ntp instalado em seu sistema. dpkg -l ntp para verificar. Você provavelmente já tem um daemon ntpd em execução, embora não funcione porque não sabe com que servidor conversar; ps -ef | grep ntpd para confirmar isso.

/etc/ntp.conf é o arquivo de configuração do ntp. A versão padrão tem:

server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

Comente as linhas e adicione:

server your.ntp.server

execute:

sudo /etc/init.d ntp restart

man ntpd para mais detalhes, mas isso deve ser suficiente para você ir em frente.

    
por Keith Thompson 10.01.2012 / 20:22