Ich habe 2 Linux-Maschinen, die ein Perl-Skript ausführen und auf eine Datenbank zugreifen müssen. Das Datum (wie vom Befehl date
und angegeben date -u
) ist korrekt (innerhalb weniger Minuten), aber bei der Rückkehr aus Perl tritt ein Zeitunterschied von 1 Stunde auf, sodass auf einem Rechner der UTC-Zeitstempel und auf dem anderen der gewünschte CET angezeigt wird.
Datum auf A:
Tue Dec 11 13:34:09 CET 2012
Datum am B:
Tue Dec 11 13:33:20 CET 2012
Das Skript verwendet Time :: HiRes und sammelt die localtime-> -Epoche, um ein Datum zu generieren. Ich erstelle ein minimalistisches folgendes Skript, um das Verhalten auszugeben:
#/usr/bin/perl
#
use Time::HiRes qw(time);
use Time::Piece;
#
my $date = Time::Piece->strptime(localtime->epoch,"%s");
print "$date->datetime"."\n";
print $date->tzoffset."\n";
print $date->epoch."\n";
Ausgabemaschine A:
Tue Dec 11 12:35:43 2012->datetime
0
1355229343
Ausgabemaschine B:
Tue Dec 11 13:34:25 2012->datetime
0
1355232865
Also, wie Sie sehen, muss etwas falsch sein, wahrscheinlich mit der Zeitzone oder etwas Ähnlichem. Aber ich weiß nicht, wo ich suchen und was ich konfigurieren soll, da es date
die richtige Zeit ausgibt.
CET
. Anhand der Ausgabe des Perl-Skripts gehe ich von einem Konfigurationsunterschied aus.
date -u
auf beiden Rechnern (innerhalb weniger Minuten) korrekte Werte zurück?