изменение часового пояса постфикса ubuntu

Я столкнулся с этой странной проблемой и целый день пытался решить ее, используя все методы, которые я нашел в Google, но до сих пор ничего не работает.

Часовой пояс моего сервера Ubuntu (10.04 LTS) — Европа/Хельсинки, это правильно (когда я запускаю команду «дата», результат показывает правильное время). Но мой постфикс, кажется, все еще использует часовой пояс UTC, потому что все время в /var/log/mail.log на 3 часа раньше, чем мое текущее время.

Я также скопировал /etc/localtime в /var/spool/postfix/etc/localtime, но ничего не помогает. (cp /usr/share/zoneinfo/Europe/Helsinki /var/spool/postfix/etc/localtim тоже не работает).

Я также пытался запустить dpkg-reconfigure tzdata, тоже не работает, системное время всегда правильное, но ошибся только mail.log.

Может ли кто-нибудь дать мне какое-нибудь предложение?

* Я перезапускал постфикс каждый раз, когда пытался внести какие-то изменения.


person JuLy    schedule 14.06.2011    source источник
comment
Мне кажется, что Postfix записывает даты в формате UTC, потому что это самый разумный способ быть уверенным в том, что электронные письма были отправлены и получены во многих часовых поясах.   -  person ewall    schedule 14.06.2011
comment
хм, но должен же быть какой-то способ заставить его использовать другой часовой пояс, не так ли?   -  person JuLy    schedule 15.06.2011


Ответы (3)


Копирование часового пояса (/etc/localtime) в chroot Postfix должно помочь, но есть пара предположений:

  1. Ваш файл /etc/timezone также настроен правильно? Вероятно, он должен содержать только строку Europe/Helsink. (Обратите внимание, что вы, вероятно, можете правильно установить все элементы часового пояса с помощью команды sudo dpkg-reconfigure tzdata.)

  2. Если Postfix использует syslogd для ведения журналов, то это может быть то, что записывает журналы в UTC. Вы можете рассмотреть возможность перехода на syslogd-ng (или аналогичный), который поддерживает несколько часовых поясов. .

  3. Вы уверены, что /var/spool/postfix — это chroot, который использует Postfix? Если это не корень вашей тюрьмы Postfix, вероятно, там не будет всех остальных файлов конфигурации.; вы можете найти параметр chroot в файле master.cf или здесь другой способ проверки. В любом случае вам нужен файл /etc/localtime в папке etc, которую использует Postfix.

  4. На всякий случай убедитесь, что вы копируете «настоящий» файл часового пояса, а не символическую ссылку (из ln -s targetfilename linkfilename). Вы можете использовать команду file /etc/localtime для проверки; если он говорит вам, что это данные часового пояса, скопируйте их в chroot Postfix; если он говорит вам, что это символическая ссылка, то вы хотите скопировать исходный /usr/share/zoneinfo/Europe/Helsinki.

person ewall    schedule 15.06.2011
comment
Как узнать, использует ли postfix syslogd для ведения журнала? - person Syntax Error; 09.09.2013

После того, как вы измените свой часовой пояс, вы должны перезапустить свой syslogd с помощью:

 sudo service rsyslog restart

Поскольку postfix обычно использует syslogd для ведения журнала.

person András Pál    schedule 13.03.2019

Не совсем ubuntu, а потому, что этот вопрос находится в верхней части результатов поиска: для меня проблема была в часовом поясе rsyslog. Исправить:

vim /etc/sysconfig/clock 
ZONE="America/New_York"     # or your timezone, of course
systemctl restart rsyslog
#  or
/etc/init.d/rsyslog restart

Затем перезапустите постфикс.

Благодаря этому сообщению

person Putnik    schedule 09.02.2018