shell script para definir a hora e a data no Ubuntu

0

minha bateria CMOS de desktop não está funcionando, portanto, preciso definir a hora e a data toda vez que meu computador é inicializado. Eu quero criar um script de shell para automatizar a configuração de data e hora no meu computador após a conclusão de cada inicialização. opções que existem incluem:  1. comprar uma bateria CMOS: - estou considerando isso, mas enquanto isso     script de shell vai fazer.  2. usando NTP para sincronizar hora e data com     servidores de internet: - não estou conectado à internet.

    
por glapo 11.11.2013 / 18:20

1 resposta

0

Se o sistema não tem como saber a hora, a única coisa que você pode fazer é tentar salvar a data e hora no desligamento e recarregar na reinicialização (como sugerido).

Warning : As seguintes instruções devem funcionar com um sistema init do tipo SystemV: Eu não testei (estou em uma máquina com Windows agora), então você tem que testá-las e levá-las com um pouco de sal --- poderia haver erros de digitação.

Warning2 Eu acho que o upstart (a implementação moderna do Ubuntu dos scripts init) o respeita, mas sua milhagem pode variar: teste e experimentos são necessários. Você pode começar de aqui se você quiser fazê-lo de uma maneira mais chique.

Para salvar a data no desligamento / reinicialização, você pode adicionar um script ao diretório /etc/rc0.d e /etc/rc6.d (o primeiro usado para o desligamento e o segundo para a reinicialização). A maneira normal de fazer isso é criar o script em /etc/init.d e vincular o script a partir dele.

Todos os comandos a seguir devem ser emitidos como root. Use o seu método preferido ...

Você pode criar um script /etc/init.d/savedatetime com seu editor favorito e o conteúdo:

#!/bin/sh
date +%m%d%H%M%Y.%S > /root/lastseendate.txt

torne-o executável e vincule-o (o formato date é aquele que a data é capaz de ler, ver man date ).

chmod +x /etc/init.d/savedatetime
cd /etc/rc0.d/
ln -s ../init.d/savedatetime K99savedatetime
cd /etc/rc6.d/
ln -s ../init.d/savedatetime K99savedatetime 

O K99 deve tornar este script o último executado antes do encerramento ou reinicialização. Se o relógio é mantido através de uma reinicialização e você quer fazer isso apenas no desligamento, simplesmente pule os dois últimos comandos.

Então, na reinicialização, você quer ler o arquivo. Há muito lugar onde colocá-lo, o mais fácil é /etc/rc.local .

Edite e coloque perto do início:

[ -f  /root/lastseendate.txt ] && date $(cat /root/lastseendate.txt) 
rm -f /root/lastseendate.txt

... e deveria ser isso. Hacker feliz!

    
por Rmano 13.11.2013 / 16:47