Дата. hwclock продолжает показываться неправильно каждый раз после перезагрузки
Отредактированный вопрос, чтобы лучше отразить ситуацию. (Мой hwclock и дата не отображаются правильно)
Я нахожусь на +GMT 8, и я установил свой hwclock в localtimezone, выполнив следующие действия
rm /etc/adjtime
system-config-date -- to set the correct date/time
ln -s /usr/share/zoneinfo/Asia/Singapore localtime
hwclock --systohc --localtime
Пожалуйста, проверьте мои настройки
[root@sjoam2 etc]# date
Sun Aug 2 03:24:59 SGT 2015
[root@sjoam2 etc]# hwclock --debug
hwclock from util-linux-ng 2.17.2
Using /dev interface to clock.
Last drift adjustment done at 1438457074 seconds after 1969
Last calibration done at 1438457074 seconds after 1969
Hardware clock is on local time
Assuming hardware clock is kept in local time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2015/08/02 03:25:16
Hw clock time : 2015/08/02 03:25:16 = 1438457116 seconds since 1969
Sun 02 Aug 2015 03:25:16 AM SGT -0.672466 seconds
[root@sjoam2 etc]# cat /etc/adjtime
0.000000 1438457074 0.000000
1438457074
LOCAL
Все вроде хорошо. Дата и hwclock показывают правильное время, пока я не сделал перезагрузку. После перезагрузки дата добавляется еще +8 часов, хотя я уже указал, что hwclock находится по местному времени.
[root@sjoam2 ~]# date
Sun Aug 2 11:30:06 SGT 2015 **-- why +8 hours ? i have specified hwclock in localtime**
[root@sjoam2 ~]# hwclock --debug
hwclock from util-linux-ng 2.17.2
Using /dev interface to clock.
Last drift adjustment done at 1438457074 seconds after 1969
Last calibration done at 1438457074 seconds after 1969
Hardware clock is on local time
Assuming hardware clock is kept in local time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2015/08/02 03:30:09
**Hw clock time : 2015/08/02 03:30:09 = 1438457409 seconds since 1969
Sun 02 Aug 2015 03:30:09 AM SGT -0.626865 seconds -- still showing the correct timing for hwclock**
Могут ли некоторые гуру пролить свет на это?
С уважением, Нуб
2 ответа
Сначала сделайте резервную копию файла местного времени.
sudo mv /etc/localtime /etc/localtime.bak
затем,
sudo ln -s /usr/share/zoneinfo/Country/City /etc/localtime
заменить свою страну и город, где вы живете. сохранить и перезагрузить. для получения дополнительной информации следуйте этим двум темам. изменить часовой пояс, я думаю, что у вас есть некоторые дополнительные детали для вас.
Если по сингапурскому времени указано время по Гринвичу / UTC плюс 8 часов, а при перезагрузке вам на 16 часов больше, ваша система, по-видимому, дважды компенсирует смещение.
В системе CentOS 7 у меня была проблема с отключенным временем на несколько часов, пока я не использовал команду timedatectl. Например:
timedatectl set-timezone Asia/Singapore
Опция "set-timezone" делает следующее:
set-timezone [TIMEZONE]
Set the system time zone to the specified value. Available
timezones can be listed with list-timezones. If the RTC is
configured to be in the local time, this will also update the RTC
time. This call will alter the /etc/localtime symlink. See
localtime(5) for more information.
Хотя аппаратные часы в этой системе используют время UTC. Например, я вижу следующее:
# hwclock --debug
hwclock from util-linux 2.23.2
Using /dev interface to clock.
Last drift adjustment done at 0 seconds after 1969
Last calibration done at 0 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2015/08/01 20:54:34
Hw clock time : 2015/08/01 20:54:34 = 1438462474 seconds since 1969
Sat 01 Aug 2015 04:54:34 PM EDT -0.904866 seconds
Последняя строка из hwclock --debug
Команда выше показывает правильное местное время для этой системы в соответствующем часовом поясе.
В этой системе я вижу следующее для /etc/localtime:
# ls -l /etc/localtime
lrwxrwxrwx. 1 root root 38 Oct 5 2014 /etc/localtime -> ../usr/share/zoneinfo/America/New_York
Если вы введете ls -l /etc/localtime
Вы все еще видите, что это указывает на /usr/share/zoneinfo/Asia/Singapore