script de shell para configurar la hora y la fecha en ubuntu

script de shell para configurar la hora y la fecha en ubuntu

La batería CMOS de mi computadora de escritorio no funciona, por lo tanto, tengo que configurar la hora y la fecha cada vez que se inicia mi computadora. Quiero crear un script de shell para automatizar la configuración de fecha y hora en mi computadora después de que se completa cada arranque. Las opciones que existen incluyen: 1. Comprar una batería CMOS: estoy considerando esto, pero mientras tanto un script de shell servirá. 2. uso de NTP para sincronizar la hora y la fecha con los servidores de Internet: no estoy conectado a Internet.

Respuesta1

Si el sistema no tiene forma de saber la hora, lo único que puede hacer es intentar guardar la fecha y hora al apagar y recargar al reiniciar (como sugirió).

Advertencia: La siguiente instrucción debería funcionar con un sistema de inicio tipo SystemV: No lo he probado (ahora estoy en una máquina con Windows), así que tienes que probarlas y tomarlas con un poco de sal. Podría haber errores tipográficos.

Advertencia2Creo queadvenedizo(la implementación moderna de Ubuntu de los scripts de inicio) respételo, pero su kilometraje puede variar: se necesitan pruebas y experimentos. Puede comenzar desdeaquísi quieres hacerlo de una manera más elegante.

Para guardar la fecha de apagado/reinicio, puede agregar un script al directorio /etc/rc0.dy /etc/rc6.d(el primero se usa para apagar y el último para reiniciar). La forma normal de hacerlo es crear el script /etc/init.dy luego vincularlo desde allí.

Todos los siguientes comandos deben ejecutarse como root. Utilice su método preferido...

Para que puedas crear un script /etc/init.d/savedatetimecon tu editor favorito y los contenidos:

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

hágalo ejecutable y luego vincúlelo (el dateformato es el que la fecha puede volver a leer, 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 

Deberían K99hacer que este script sea el último ejecutado antes de apagar o reiniciar. Si el reloj se mantiene mediante un reinicio y desea hacerlo solo al apagar, simplemente omita los dos últimos comandos.

Luego, al reiniciar, desea leer el archivo. Hay muchos lugares donde colocarlo, siendo el más fácil /etc/rc.local.

Edítalo y colócalo cerca del inicio:

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

...y eso debería ser todo. ¡Feliz pirateo!

información relacionada