Zeit mit Unixepochenzeit stellen (n.mgl. aber anders gelöst)

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
K.I.T.T.
Beiträge: 104
Registriert: 14.11.2005 11:33:38

Zeit mit Unixepochenzeit stellen (n.mgl. aber anders gelöst)

Beitrag von K.I.T.T. » 02.06.2006 01:36:54

Hi.

Das, glaube ich, ist gerade noch eine Grundsatzfrage:

Ich möchte die Uhrzeit und das Datum mit die Unixepochenzeit stellen:

Ich nehme also von einem richtig eingestellten Server diese Zeit mit

Code: Alles auswählen

date "+%s"
den Wert und stelle dann auf dem Zielsystem mit

Code: Alles auswählen

date --set=s +1149204713
Ich lande dabei aber immer ca. hier Tue Apr 18 20:00:00 CEST 2006 :-(


Wo könnte der Fehler liegen?
Die Quelle ist garantiert richtig eingestellt. Zeitunterschiede dürften doch auch nie höher als +/- 24h sein.
Wende ich den Befehl date vielleicht falsch an?
Die Manuals (man date) fehlen leider ein paar Beispiele zum testen und nachspielen :-(

Gruß
Zuletzt geändert von K.I.T.T. am 02.06.2006 12:05:35, insgesamt 1-mal geändert.

Benutzeravatar
herrchen
Beiträge: 3257
Registriert: 15.08.2005 20:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Re: h. einfach Frage: Datum/Zeit mit Unixepochenzeit stellen

Beitrag von herrchen » 02.06.2006 01:48:30

K.I.T.T. hat geschrieben: Ich möchte die Uhrzeit und das Datum mit die Unixepochenzeit stellen
installiere dir "ntpdate" und dann:

Code: Alles auswählen

ntpdate de.pool.ntp.org
herrchen

K.I.T.T.
Beiträge: 104
Registriert: 14.11.2005 11:33:38

Re: h. einfach Frage: Datum/Zeit mit Unixepochenzeit stellen

Beitrag von K.I.T.T. » 02.06.2006 01:50:29

herrchen hat geschrieben:

Code: Alles auswählen

ntpdate de.pool.ntp.org
Ich wusste, dass das kommt. :-(

NTP ist technisch auf den Client später nicht möglich.

Gruß

ToPeG
Beiträge: 437
Registriert: 14.04.2004 00:42:06

Beitrag von ToPeG » 02.06.2006 02:27:32

Allso was klappt ist folgendes.

Code: Alles auswählen

date `ssh <SERVER> date +%m%d%H%M%y.%S`

K.I.T.T.
Beiträge: 104
Registriert: 14.11.2005 11:33:38

Beitrag von K.I.T.T. » 02.06.2006 12:03:59

Ok.
Vielen Dank.

SSH ist vielleicht etwa übertrieben. Ich assimiliere aber deinen Vorschlag und Löse das Problem nun so:

Client:

Code: Alles auswählen

date `wget -q -O - "http://serverip/com/?gettime=true"`
Server:
/var/www/com/index.php

Code: Alles auswählen

<?php
    if ( $_GET["gettime"] ) {
        echo shell_exec( 'date +%m%d%H%M%y.%S | tr -d "\n"' );
        exit;
    }
?>
Gruß


Nur interessehalbe weiterhin:
Gibt es eine Ursache, warum das nicht mit dieser Unixtime nicht funktoniert?

In Zahlreichen SQL-Datenbanken nutze ich bereits dieses leicht zu handhabende Format.
Man bekommt damit immer einen Weltweit eindeutigen Zeitpunkt und muss sich nicht mit den Zeitzonen rumärgern.

Doch außerhalb der PHP-Welt scheint das Linux-Grundsystem damit wohl echt so seine Probleme zu haben :-(

ToPeG
Beiträge: 437
Registriert: 14.04.2004 00:42:06

Beitrag von ToPeG » 02.06.2006 14:47:46

Wie es aussieht kann Date die vollständige Zeit nur in diesem Format übernehmen. Sie wurde so gewählt, damit ein Mensch sie leicht eingeben kann. "date" ist eines der ältesten unixshellbefehle, und an dem format der ingane het sich seitdem nichts mehr geändert, da es kein allzu großes problem ist einen passenden string zu generieren. Und wenn es jemand anders machen wollte verwendete er hat C. Unter C kann man mit "stime" (ist in time.h drin) den timestamp (epochtime) setzen.

Ich verwende in meinen Programmen und Scripten auch gerne die Epochenzeit, auch wenn das nicht ganz sauber ist. Sie muß ja irgendwann mal umgsetellt werden, wenn die Grenze von INT erreicht ist. Das kann theoretsich zu ähnlichen Problemen wie bei der Jahr 2000 Umstellung führen.

Antworten