Рейтинг:0

Postfix внезапно не настроен для MySQL

флаг dz

Я использовал этот сервер примерно неделю. Свежая установка Ubuntu 20.04, все пакеты установлены через apt. Я мог получать и отправлять почту за пределами моего IP просто отлично. Внезапно получение электронной почты стало невозможным.

Я проверил журналы и вскоре заметил ошибка: неподдерживаемый тип словаря: mysql сообщение, что означало, что postfix не смог проверить получателя по моей базе данных. я проверил свой список подходящих --установлен вывод, но postfix-mysql был установлен, так что проблема не в этом. Вскоре я обнаружил, что мне нужно добавить строку: mysql /usr/lib/postfix/postfix-mysql.so.1.0.1 dict_mysql_open к /etc/postfix/dynamicmaps.cf и сделать постфиксная перезагрузка.

У меня вопрос: как такое могло произойти? у меня есть подходящее обновление && подходящее обновление cron, который автоматически обновляет сервер.

Обновлять

Последнее обновление, которое я видел, было следующим:

2021-09-28 23:01:31 постфикс обновления: amd64 3.4.13-0ubuntu1.1 3.4.13-0ubuntu1.2 Проблемы начались сразу после этого. dynamicmaps.cf был пуст, за исключением закомментированной строки инструкций вверху. Я добавил строку mysql, и теперь это единственная функциональная строка в файле.

Обновление 2

После убийства всех процессов, найденных с помощью пс-Аф | grep -E 'dpkg|debconf|apt|unatt' я побежал:

судо подходящее обновление
sudo apt-get install --fix-broken
sudo dpkg --configure -a -D223

Что дало мне следующую ошибку при попытке настроить постфикс:

D000001: очередь процессов pkg postfix-mysql: amd64 queue.len 54 прогресс 1, попытка 1
dpkg: проблемы с зависимостями препятствуют настройке postfix-mysql:
 postfix-mysql зависит от postfix (= 3.4.13-0ubuntu1.2); Однако:
  Пакет postfix не установлен.

dpkg: ошибка обработки пакета postfix-mysql (--configure):
 проблемы с зависимостями - оставить ненастроенным

Я недостаточно знаю о dpkg, чтобы понять это. Что тут происходит?

Обновление 3

dpkg-query --show --showformat='${package} ${status}\n' 'postfix*' дает:

postfix install ok установлен postfix-cdb unknown ok not-installed
постфикс-док неизвестен ок не установлен
postfix-ldap неизвестен ок не установлен
postfix-lmdb неизвестно ок не установлен
postfix-mysql install ok установлен
postfix-pcre неизвестно ок не установлен
postfix-pgsql неизвестно ок не установлен
postfix-sqlite неизвестно ок не установлен

Таким образом, оба запрошенных пакета находятся в состоянии OK и установлены. Насколько я видел, команда apt не предлагала исправления (и я внимательно прочитал вывод). Кажется, ваши предложения сработали.

Что мне не нравится, так это незнание того, что я делаю, но это из-за моего собственного отсутствия знаний apt и dpkg.

anx avatar
флаг fr
anx
Что ж, откройте свой dpkg.log и проверьте, после какой версии вы столкнулись с неожиданным изменением. Кроме того, каково было содержимое файла `dynamicmaps.cf` до того, как вы его отредактировали?
Guido Goluke avatar
флаг dz
Обновил вопрос с информацией
anx avatar
флаг fr
anx
Вы только добавили ошибку, но я ожидал, что `apt-get install -f` автоматически предложит вам решение проблемы с зависимостями. Что сказал apt-get?
anx avatar
флаг fr
anx
Команда dpkg-query, которую я предложил, должна отображать текущий статус всех задействованных пакетов... но, вероятно, проще будет просто выполнить `apt install postfix postfix-mysql` и посмотреть, что произойдет.
Guido Goluke avatar
флаг dz
Еще раз спасибо, обновлено в обновлении 3
Рейтинг:0
флаг fr
anx

Каждый раз, когда вы обновляете пакет карт postfix, он сначала удаляет соответствующий тип карты из /etc/postfix/dynamicmaps.cf и только в последующем добавить его (обратно). Вы можете вручную увидеть, что это работает, принудительно реконфигурируя через dpkg-перенастроить postfix-mysql. Если после обновления файл остался пустым, это, вероятно, означает, что обновление было прервано или даже все еще зависает, ожидая ввода данных пользователем, которого так и не поступило.

Если вы применяете все SRU, вы обновите Postfix до 3.4.13-0убунту1.2 для Убунту 20.04. Я рекомендую вам подтвердить, что в настоящее время обновления не применяются:

пс-Аф | grep -E 'dpkg|debconf|apt|unatt'
dpkg-query --show --showformat='${package} ${status}\n' 'postfix*'

Ваша работа cron имеет недостатки в том, что она не может сказать, что это неинтерактивный призыв, это май быть причиной того, что он висит.

При необходимости убедитесь, что все пакеты правильно установлены. На этом этапе вы, скорее всего, увидите предупреждения или вопросы, которые помогут определить Почему ваша работа cron не удалась.

судо подходящее обновление
sudo apt-get install --fix-broken
sudo dpkg --configure -a -D223

Не забудьте удалить оскорбительное задание cron, чтобы настроить что-то надежное. Программа автоматическое обновление обычно является предпочтительным методом применения обновлений в системах Ubuntu, когда нет администратора. Он будет пропускать или использовать значения по умолчанию для вещей, которые в противном случае запрашивались бы в интерактивном режиме.

Guido Goluke avatar
флаг dz
Большое спасибо. Вывод ps дал мне ряд результатов. Меня поразило следующее: `root 979323 979322 0 Sep28 ? 00:00:00 /bin/sh -c (apt-get update && apt-get -y upgrade) > /dev/null`. 28 сентября было датой, после которой произошла ошибка, я предполагаю, что это говорит мне о том, что процесс обновления все еще зависает?
anx avatar
флаг fr
anx
О, это ваш вызов cron, так что похоже, что он завис. Посмотрите, какие другие процессы (в частности: дочерние процессы того, который вы нашли) запущены — я подозревал, что обновление зависло при вызове dpkg/debconf где-то.Если вы не хотите это исправлять, завершите дочерний процесс, подождите, пока apt справится с этим, а затем попробуйте мои шаги, чтобы убедиться, что вы вернете все пакеты в нормальное состояние.
Guido Goluke avatar
флаг dz
Еще раз спасибо, обновил мой вопрос с выводами

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.