# Systemzeit

## flammenflitzer

Hallo

Habe gerade festgestellt, das meine Uhr eine Stunde nachgeht. Oder liegt der Fehler an anderer Stelle?

```
flammenflitzer olaf # cat /etc/conf.d/clock

# /etc/conf.d/clock

TIMEZONE="Europe/Berlin"

CLOCK_OPTS=""

CLOCK_SYSTOHC="no"

SRM="no"

ARC="no"
```

```
flammenflitzer olaf # cat /etc/conf.d/local.start

/usr/local/bin/Zeitabgleich
```

```
flammenflitzer olaf # cat /usr/local/bin/Zeitabgleich

#!/bin/sh

rdate -s time.fu-berlin.de

hwclock --systohc

rm /etc/adjtime
```

Auch 

```
rdate -s time.fu-berlin.de
```

im Terminal zeigt mir date eine Zeit an, die eine Stunde hinter der Atomzeit hängt.

```
ntpdate ptbtime1.ptb.de
```

ändert auch nichts.

MfG

----------

## ChrisJumper

Hi flammenflitzer,

Also ich hab in meiner /etc/conf.d/clock noch diesen Abschnitt:

```
# Set CLOCK to "UTC" if your system clock is set to UTC (also known as

# Greenwich Mean Time).  If your clock is set to the local time, then 

# set CLOCK to "local".  Note that if you dual boot with Windows, then 

# you should set it to "local".

CLOCK="UTC"
```

Und der scheint bei dir zu fehlen. Wenn mich nicht alles täuscht ist diese Einstellung eben dafür da, ob die Zeitzonen-Umrechnung noch auf die Bios-Uhrzeit gerechnet wird oder eben nicht.

----------

## flammenflitzer

Habe ich aus Versehen weggeschnitten. Steht bei mir auch. Ich habe beide Versionen ausprobiert.

----------

## aleph-muc

Hi Flammenflitzer,

also nach meinem Verständnis mußt Du die Uhr auf local stellen. Wenn Du Dir die Atomzeit aus Braunschweig holst, aber GMT (UTC) angezeigt willst ist die Abweichung eben eine Stunde.

Gruß

aleph

----------

## Anarcho

Bei mir ist /etc/localtime noch ein symlink auf /usr/share/zoneinfo/Europe/Berlin

----------

## blice

Dieser ganze Timezone-krams geht eh immer nur bis zu nexten Zeitumstellung .. am einfachsten auf local stellen und am abend vor der Uhrumstellung schon im bios umstellen bevor man den rechner ausmacht .. 

denn im herbst beim uhr-zurückstellen meckert der sonst soviel über "change-date is in the future"

----------

## flammenflitzer

```
flammenflitzer olaf # ls -la /etc/localtime

lrwxrwxrwx 1 root root 33 10. Mär 18:18 /etc/localtime -> /usr/share/zoneinfo/Europe/Berlin
```

```
flammenflitzer olaf # cat /etc/conf.d/clock | grep CLOCK

CLOCK="local"

CLOCK_OPTS=""

CLOCK_SYSTOHC="no"
```

----------

## 3PO

Bei mir passt die Uhrzeit.

Hier mal meine  /etc/conf.d/clock, evtl hilft es Dir ja weiter:

```
# /etc/conf.d/clock

CLOCK="UTC"

TIMEZONE="Europe/Berlin"

OPTS="--directisa"

CLOCK_OPTS="--noadjfile $OPTS"

CLOCK_SYSTOHC="yes"

SRM="no"

ARC="no"
```

----------

## mv

 *blice wrote:*   

> Dieser ganze Timezone-krams geht eh immer nur bis zu nexten Zeitumstellung .. am einfachsten auf local stellen und am abend vor der Uhrumstellung schon im bios umstellen bevor man den rechner ausmacht ..

 

Damit handelst Du Dir erst recht Ärger mit Zeit-Daten auf FAT-Systemen und CDs ein. Wie es richtig geht, hatte ich mal hier beschrieben. Leider habe ich mir die Mühe für solche Beschreibungen umsonst gemacht, da sie ja jetzt kein Mensch mehr mit einer Suchmaschine finden kann.

----------

## Olis

 *blice wrote:*   

> Dieser ganze Timezone-krams geht eh immer nur bis zu nexten Zeitumstellung .. am einfachsten auf local stellen und am abend vor der Uhrumstellung schon im bios umstellen bevor man den rechner ausmacht .. 
> 
> denn im herbst beim uhr-zurückstellen meckert der sonst soviel über "change-date is in the future"

 

Bitte? Die Uhr umstellen? Bei einem Linux-System?

Sorry, sowas kenne ich nur von alten Windows-Systemen, die neueren Versionen bekommen das ja mittlerweile auch automatisch hin. Auch wenn sie dabei tatsächlich noch die Uhr umstellen.

Die Regel ist eigentlich ganz einfach:

[*] Handelt es sich um ein Dual-Boot-System, auf dem neben Linux auch mal Windows gebootet wird, dann stell' die HW-Uhr auf lokale Zeit (um keine Zeitdifferenz unter Windows zu haben). 

[*] Ist es ein reines Linux-System, dann stell die HW-Uhr auf UTC. Bei korrekt eingestellter Timezone berechnet Linux dann auf Basis der HW-Uhr (UTC) und der Timezone die korrekte Sommer- bzw. Winterzeit.

An den OP: meine /etc/conf.d/clock sieht wie folgt aus:

```
CLOCK="UTC"

TIMEZONE="Europe/Berlin"

CLOCK_OPTS=""

CLOCK_SYSTOHC="yes"

SRM="no"

ARC="no"
```

Unterschied: CLOCK_SYSTOHC="yes"

Aber wozu brauchst Du /usr/local/bin/Zeitabgleich?

Ich habe hier /etc/init.d/clock im Runlevel boot sowie /etc/init.d/ntp-client und /etc/init.d/ntpd im Runlevel default.

ntp-client holt einmalig die Uhrzeit beim Booten(zuletzt vor 24 Tagen), der ntp-Daemon dann regelmäßig im laufenden Betrieb. Damit könnte ich meine Funkuhr hier eigentlich auch über den Rechner stellen  :Wink: .

Die /etc/ntp.conf sieht wie folgt aus:

```
server 0.pool.ntp.org

server 1.pool.ntp.org

server 2.pool.ntp.org

driftfile       /var/lib/ntp/ntp.drift

restrict default nomodify nopeer

restrict 127.0.0.1

restrict 192.168.23.0 mask 255.255.255.0 nomodify nopeer notrap
```

Die "server"-Einträge sorgen dafür, dass immer wieder andere Zeitserver abgefragt werden. Wenn Du Dich auf europäiusche Server beschränken willst, kannst Du z.B. auch 0.europe.pool.ntp.org verwenden, für deutsche Zeitserver 0.de.pool.ntp.org. Und wenn Du nur Gentoo-Systemen vertraust: 0.gentoo.pool.ntp.org  :Wink: .

Die ersten beiden "restrict"-Zeilen sorgen dafür, dass nur localhost die Zeit neu setzen darf, die dritte restrict-Zeile erlaubt allen Clients in meinem lokalen Netz (z.B. 192.168.23.0) die Uhrzeit von meinem Rechner zu holen.

Hoffe, das hilft. Ansonsten gibt's eine detaillierte Anleitung (in Englisch) im Wiki: http://en.gentoo-wiki.com/wiki/NTP

Gruß,

Oliver

----------

## mv

 *Olis wrote:*   

> Die Regel ist eigentlich ganz einfach:
> 
> [*] Handelt es sich um ein Dual-Boot-System, auf dem neben Linux auch mal Windows gebootet wird, dann stell' die HW-Uhr auf lokale Zeit (um keine Zeitdifferenz unter Windows zu haben). 
> 
> [*] Ist es ein reines Linux-System, dann stell die HW-Uhr auf UTC. Bei korrekt eingestellter Timezone berechnet Linux dann auf Basis der HW-Uhr (UTC) und der Timezone die korrekte Sommer- bzw. Winterzeit.

  Um es nochmals zu betonen: Diese Regel ist nur sinnvoll, wenn kein FAT-Dateisystem im Spiel ist. Ansonsten ist der gepostete Link die bessere Alternative.

----------

## Olis

 *mv wrote:*   

> Um es nochmals zu betonen: Diese Regel ist nur sinnvoll, wenn kein FAT-Dateisystem im Spiel ist. Ansonsten ist der gepostete Link die bessere Alternative.

 

Ich muss gestehen: dass die Timestamps auf FAT sich aufgrund der Zeitumstellung ändern, ist mir noch nie aufgefallen. Habe hier noch ein altes Filesystem mit FAT, dass früher mal zum Austausch von Daten mit Windows diente. Wurde mal angelegt, als es noch kein NTFS-3G gab und Schreiben auf NTFS nur etwas für Mutige war. 

Und auf meinen USB-Sticks habe ich auch noch VFAT. Aber wie gesagt: aufgefallen ist mir das noch nie...

Oliver

----------

## mv

 *Olis wrote:*   

> Und auf meinen USB-Sticks habe ich auch noch VFAT. Aber wie gesagt: aufgefallen ist mir das noch nie...

 

Es fällt ja auch immer nur bei einem Teil der Dateien auf: Entweder bei den Dateien die im Sommer oder bei denen, die im Winter geschrieben wurden. Und bei "frischen" Dateien fällt es ebenfalls nicht auf, weil ja da der neue Zeitstempel durchgedrückt wird. Das Problem besteht halt vor allem bei Backups, die mit Zeitstempeln arbeiten (z.B. wenn man rsync dazu benutzt) - je nach Bedarf ist für solche eine VFAT-Partition (zwecks Kompatibilität) sinnvoll, und dann ist es schon nervig, wenn alle halbe Jahre das halbe Archiv ein falsches Datum hat: Man will ja auch keine Stunde Toleranz bei rsync einstellen, weil sich Zeitstempel vor allem von manuell editierten Dateien nicht immer um mindestens eine Stunde unterscheiden.

----------

## Scorpion_DE

Hallo,

also bei mir funktioniert das seit Jahren folgendermaßen:

1. Ein Dual-Boot System mit Windows und Gentoo Linux

Die Zeit im BIOS muss der *lokalen* Zeit entsprechen. Die dazugehörige /etc/conf.d/clock sieht so aus (Auszug):

```
CLOCK="local"

TIMEZONE="Europe/Berlin"

CLOCK_SYSTOHC="yes"
```

Eine passende /etc/localtime muss mit

```
cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime
```

erzeugt werden. Alternativ kann es sich auch um einen symbolischen Link handeln wie es auf dem System von Anarcho der Fall ist.

2. Ein Gentoo-only System

Die Zeit im BIOS steht auf UTC (Greenwitch Mean Time). Die passende /etc/conf.d/clock (Auszug):

```
CLOCK="UTC"

TIMEZONE="Europe/Berlin"

CLOCK_SYSTOHC="yes"
```

Die /etc/localtime ist identisch zum Dual-Boot System anzulegen.

Mit dieser Konfiguration habe ich seit mehreren Jahren diverse Notebooks und Desktops sowie diverse Serversysteme in Betrieb. Die Umschaltung CET/MEST klappt vollautomatisch sowohl im Frühjahr als auch im Herbst.

Für die Zeitkorrektur verwende ich das Package net-misc/openntpd, wobei sich meine "Clients" gegen meinen root-Server, und dieser sich gegen die ptbtime-Server synchronisiert.

Anmerkung: Handelt es sich bei eurer /etc/localtime *nicht* um einen symbolischen Link, dann solltet ihr jedesmal bei einem Update von timezone-data, erneut die /etc/localtime aus /usr/share/zoneinfo kopieren.

Anmerkung: Solltet ihr hwclock manuell oder aus einem Script aufrufen, dann müsst ihr natürlich dem System sagen, ob ihr UTC oder local im RTC stehen habt. Der Kommandozeilenparameter -u bzw --utc ist entsprechend zu verwenden. Aber ihr habt ja glücklicherweise ein Gentoo installiert. Deshalb könnt ihr ganz einefach

```
/etc/init.d/clock save
```

aufrufen. Das System macht bei korrekter Konfiguration (siehe /etc/conf.d/clock) den Rest automatisch.

Zusammenfassung:

a) /etc/conf.d/clock korrekt konfigurieren.

b) /etc/localtime korrekt ablegen

c) hwclock richtig verwenden oder besser /etc/init.d/clock save benutzen

Gruß Scorpion

----------

## think4urs11

 *Scorpion_DE wrote:*   

> Anmerkung: Handelt es sich bei eurer /etc/localtime *nicht* um einen symbolischen Link, dann solltet ihr jedesmal bei einem Update von timezone-data, erneut die /etc/localtime aus /usr/share/zoneinfo kopieren.

 

Sollte doch aber nur notwendig sein wenn sich (für den eigenen Standort) etwas an Start/Enddatum der Sommerzeit ändert, korrekt? In Mitteleuropa kommt sowas i.d.R. praktisch nicht vor.

In den USA wo teils benachbarte Distrikte unterschiedliche Regelungen haben oder in Asien ist es wahrscheinlich eher notwendig.

Sofern man /usr nicht als eigenes FS betreibt sondern unter / 'tuts' auch der symlink.

----------

## Scorpion_DE

 *Think4UrS11 wrote:*   

> Sollte doch aber nur notwendig sein wenn sich (für den eigenen Standort) etwas an Start/Enddatum der Sommerzeit ändert, korrekt? In Mitteleuropa kommt sowas i.d.R. praktisch nicht vor.

 

Ja, du hast schon recht. Es gibt aber 2 Gründe warum ich es erwähnt habe. Einmal kann es nicht schaden und viele User sparen sich Stress, wenn die Sommerzeit mal wieder abgeschafft wird   :Wink:  Wegen der Probleme mit /usr als eigenes Filesystem, wird ja auch im Gentoo-Handbuch das kopieren der Zeitzoneninformation vorgegeben. An die /etc/localtime als Ursache für eine falsch angezeigte Zeit denkt nur ein Bruchteil der Anwender. Außerdem ist ja nicht gesagt, daß alle hier deutsch postenden User auch ihren PC in Mitteleuropa betreiben.

Grundsätzlich bin ich der Meinung, daß die Problematik /etc/localtime auf jede Update-Checkliste gesetzt werden sollte. Es ist ein minimlaer Aufwand und man ist für alle Eventualitäten gerüstet.

Gruß Scorpion

----------

