shell script para definir hora e data no Ubuntu

shell script para definir hora e data no Ubuntu

a bateria CMOS do meu desktop não está funcionando, portanto, preciso definir a hora e a data sempre que o computador for inicializado. 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. as opções existentes incluem: 1. comprar uma bateria CMOS: - estou considerando isso, mas por enquanto um script de shell servirá. 2. usando NTP para sincronizar hora e data com servidores de internet: - não estou conectado à internet.

Responder1

Se o sistema não tiver 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 você sugeriu).

Aviso: A instrução a seguir deve funcionar com um sistema init do tipo SystemV: Eu não testei (estou em uma máquina Windows agora), então você tem que testá-los e aceitá-los com um pouco de sal --- pode haver erros de digitação.

Aviso2eu penso issosubir na vida(a implementação moderna de scripts de inicialização do Ubuntu) respeite-o, mas sua milhagem pode variar: testes e experimentos são necessários.aquise você quiser fazer isso de uma forma mais sofisticada.

Para salvar a data de desligamento/reinicialização, você pode adicionar um script ao diretório /etc/rc0.de /etc/rc6.d(o primeiro usado para desligamento e o último para reinicialização). A maneira normal de fazer isso é criar o script /etc/init.de vinculá-lo a partir daí.

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

Assim você pode criar um script /etc/init.d/savedatetimecom seu editor favorito e o conteúdo:

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

torne-o executável e depois vincule-o (o dateformato é aquele que a data pode ser lida, consulte 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 

Deve K99tornar este script o último executado antes do desligamento ou reinicialização. Se o relógio for mantido durante uma reinicialização e você quiser fazer isso apenas no desligamento, simplesmente pule os dois últimos comandos.

Então, na reinicialização, você deseja ler o arquivo. Tem muito lugar onde colocar, sendo o mais fácil /etc/rc.local.

Edite-o e coloque próximo ao início:

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

... e deveria ser isso. Feliz hacking!

informação relacionada