Shell-Skript zum Einstellen von Uhrzeit und Datum unter Ubuntu

Shell-Skript zum Einstellen von Uhrzeit und Datum unter Ubuntu

meine Desktop-CMOS-Batterie funktioniert nicht, deshalb muss ich bei jedem Hochfahren meines Computers Uhrzeit und Datum einstellen. Ich möchte ein Shell-Skript erstellen, um die Einstellung von Datum und Uhrzeit auf meinem Computer nach jedem abgeschlossenen Bootvorgang zu automatisieren. Folgende Optionen stehen zur Verfügung: 1. Kauf einer CMOS-Batterie: Ich überlege das, aber in der Zwischenzeit reicht ein Shell-Skript. 2. Verwendung von NTP zum Synchronisieren von Uhrzeit und Datum mit Internetservern: Ich bin nicht mit dem Internet verbunden.

Antwort1

Wenn das System die Uhrzeit nicht ermitteln kann, können Sie nur versuchen, Datum und Uhrzeit beim Herunterfahren zu speichern und beim Neustart neu zu laden (wie Sie vorgeschlagen haben).

Warnung: Die folgende Anweisung sollte mit einem Init-System vom Typ SystemV funktionieren: Ich habe sie nicht getestet (ich verwende jetzt eine Windows-Maschine), Sie müssen sie also testen und mit Vorsicht genießen – es könnten Tippfehler enthalten sein.

Warnung2ich denke, dassEmporkömmling(die moderne Ubuntu-Implementierung von Init-Skripten) respektieren Sie es, aber Ihre Laufleistung kann variieren: Tests und Experimente sind erforderlich. Sie können beginnen vonHierwenn Sie es auf eine ausgefallenere Art und Weise machen möchten.

Um das Datum beim Herunterfahren/Neustart zu speichern, können Sie ein Skript zum Verzeichnis /etc/rc0.dund hinzufügen /etc/rc6.d(das erste wird zum Herunterfahren und das zweite zum Neustarten verwendet). Normalerweise wird das Skript in erstellt /etc/init.dund dann von dort aus verknüpft.

Alle folgenden Befehle müssen als Root ausgeführt werden. Verwenden Sie Ihre bevorzugte Methode ...

/etc/init.d/savedatetimeSo können Sie mit Ihrem bevorzugten Editor ein Skript mit den folgenden Inhalten erstellen :

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

Machen Sie es ausführbar und verknüpfen Sie es dann (das dateFormat ist dasjenige, das das Datum zurücklesen kann, siehe 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 

Dieses K99Skript sollte das letzte sein, das vor dem Herunterfahren oder Neustarten ausgeführt wird. Wenn die Uhr während eines Neustarts beibehalten wird und Sie dies nur beim Herunterfahren tun möchten, überspringen Sie einfach die letzten beiden Befehle.

Beim Neustart möchten Sie die Datei dann lesen. Es gibt viele Orte, an denen Sie sie ablegen können. Am einfachsten ist es /etc/rc.local.

Bearbeiten Sie es und fügen Sie es an den Anfang ein:

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

... und das sollte es sein. Viel Spaß beim Hacken!

verwandte Informationen