Hallo! Da wenigstens einer das gleiche Problem hatte wie ich, nochmal zum Abschluß:
In /etc/default/rcS wird angegeben, in welcher Zeitzone sich die hardware-uhr befindet: A) UTC=yes : BIOS-Uhr läuft nach UTC B) UTC=no : BIOS-Uhr läuft nach lokaler Zeit Probleme können auftreten, wenn die Zeitzone wechselt, ohne dass der Computer bewegt wird. Beispiel: Umstellung von Sommer- (CEST) auf Winterzeit (CET). Während der Umstellung kann der Computer entweder 1) in Betrieb sein 2) oder nicht. Die Fälle A1 und A2 sind einfach: --------------------------------- On Mon, 2004-11-01 at 01:54:21 +0100, Bertram Scharpf wrote: > > Ich habe hier 2 Debian-Rechner. Auf UTC. Einer lief durch, > der andere war aus. Beide zeigen heute die richtige Zeit. > Der durchlaufende ruft jede Nacht um 2:45 Uhr E-Mail ab; > letzte Nacht war er laut `/var/log/messages' zweimal > eingewählt. Klar, die Stunde gibt's zweimal: einmal CEST und einmal CET. Bleibt zu fragen: wird dann vom Wechsel von 2:00 CET nach 3:00 CEST keine Post abgeholt? Egal, der Blödsinn mit der Sommerzeit bleibt uns noch länger erhalten ;-) Im Fall B1 gilt A1 entsprechend. Für Fall B2 habe ich einen Patch(-versuch?) im Anhang, damit das endlich mal Ende hat. On Sun, 2004-10-31 at 21:01:45 +0100, Dirk Salva wrote: > > ROTFL. Nix funktioniert da richtig;-( Bei der letzten (nicht gestern) > Zeitumstellung habe ich das leider erfahren muessen: > Auf meinem Server laeuft chrony. Der Server laeuft auf UTC. ABER: > wenn der Rechner zur Zeitumstellung nachts um 2 nicht laeuft, wird da > nix verstellt, wenn man ihn am anderen Morgen einschaltet. Weil die BIOS-Uhr keine Ahnung von Zeitzonen hat. Sobald /usr/share/zoneinfo verfügbar ist, ändert sich die Zeitzone, aber nicht die Stunde! > Dann > versucht chrony wie bloede, die Zeitdifferenz haeppchenweise > auszugleichen, was natuerlich voelliger Muell ist. Gestern hab ich > den Rechner einfach mal durchlaufen lassen, da gehts dann ploetzlich. Das problem der doppelten Stunde, die für den Computer 1 sein sollte, hab ich hier nicht berücksichtigt. Weitermachen, solang's Spaß macht. Günter ------------------------------------------------------------------------ *** /etc/init.d/hwclock.sh.200 Sat Feb 2 21:27:29 2002 --- /etc/init.d/hwclock.sh Wed Nov 3 12:45:09 2004 *************** *** 2,10 **** --- 2,13 ---- # hwclock.sh Set and adjust the CMOS clock, according to the UTC # setting in /etc/default/rcS (see also rcS(5)). # + # Version: @(#)hwclock.sh 2.01 2004-10-03 [EMAIL PROTECTED] # Version: @(#)hwclock.sh 2.00 14-Dec-1998 [EMAIL PROTECTED] # # Patches: + # 2004-10-02 Günter Knab <[EMAIL PROTECTED]> + # - /etc/adjtzone saves timezone between reboots # 2000-01-30 Henrique M. Holschuh <[EMAIL PROTECTED]> # - Minor cosmetic changes in an attempt to help new # users notice something IS changing their clocks *************** *** 30,41 **** --- 33,60 ---- *) echo "$0: unknown BADYEAR setting: \"$BADYEAR\"" >&2 ;; esac + # write the current (RFC-822 style numeric) timezone as offset to UTC + # with '/bin/date +%z' (a nonstandard extension). + # Version: date (GNU sh-utils) 2.0.11 + get_timezone () { + if [ "$UTC" = yes ] + then + echo +0000 + else + date +%z + fi + } + case "$1" in start) if [ ! -f /etc/adjtime ] then echo "0.0 0 0.0" > /etc/adjtime fi + if [ ! -f /etc/adjtzone ] + then + get_timezone > /etc/adjtzone + fi # Uncomment the hwclock --adjust line below if you want # hwclock to try to correct systematic drift errors in the *************** *** 64,69 **** --- 83,120 ---- echo echo "Setting the System Clock using the Hardware Clock as reference..." fi + + # check wether timezone has changed, assuming: + # - hwclockfirst.sh has set sysclock assuming last tz + # - now /usr/share/zoneinfo is available, we are able to + # check wether daylight savings comes into effect during + # offtime + # + LAST_TZ=`cat /etc/adjtzone` + CUR_TZ=`date +%z` + if [ "$LAST_TZ" -ne "$CUR_TZ" ] + then + if [ "$VERBOSE" != no ] + then + echo "Timezone changed from $LAST_TZ to $CUR_TZ." >&2 + fi + # bash interprets '+0100' and '+0200' as octal !!! + case $(($CUR_TZ - $LAST_TZ)) in + -64) NEW_HOUR=$(( $(date +%H)-1 )) ;; + 64) NEW_HOUR=$(( $(date +%H)+1 )) ;; + *) NEW_HOUR=$(date +%H) + echo "Timezones doesn't differ exactly 1 hour." >&2 + ;; + esac + if [ "$HWCLOCKACCESS" != no ] + then + hwclock --set --date="$NEW_HOUR:$(date +%M:%S)" $GMT $BADYEAR + fi + # reset systematic clock drift + echo "0.0 0 0.0" > /etc/adjtime + get_timezone > /etc/adjtzone + fi + # Copies Hardware Clock time to System Clock using the correct # timezone for hardware clocks in local time, and sets kernel # timezone. DO NOT REMOVE. *************** *** 98,106 **** --- 149,159 ---- then hwclock --systohc $GMT $BADYEAR fi + get_timezone > /etc/adjtzone if [ "$VERBOSE" != no ] then echo "Hardware Clock updated to `date`." + echo "Saved timezone is UTC`get_timezone`." fi ;; show) *************** *** 108,119 **** then hwclock --show $GMT $BADYEAR fi ;; *) echo "Usage: hwclock.sh {start|stop|reload|force-reload|show}" >&2 echo " start sets kernel (system) clock from hardware (RTC) clock" >&2 ! echo " stop and reload set hardware (RTC) clock from kernel (system) clock" >&2 exit 1 ;; esac --- 161,177 ---- then hwclock --show $GMT $BADYEAR fi + get_timezone ;; *) echo "Usage: hwclock.sh {start|stop|reload|force-reload|show}" >&2 echo " start sets kernel (system) clock from hardware (RTC) clock" >&2 ! echo " stop and reload set hardware (RTC) clock from kernel (system) clock" >&2 exit 1 ;; esac + + + + -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)