Существует несколько возможных решений этой проблемы, и они все довольно сложны. Это - самая прозрачная конфигурация, о которой я мог думать, но честно я переключу хосты, если их передача SMTP будет ненадежна. Существует много хороших, дешевых поставщиков почтовых сервисов. Кроме того, рассмотрите использование IMAP вместо POP3, поскольку он облегчит проблемы с синхронизацией, вероятно, для явлений результатом такой установки.
Решение является сложным из-за необходимой связи между Агентом передачи почты (MTA) и Агентом доставки почты (MDA). Для электронного письма для существования на сервере POP3 (MDA) это, должно быть, было поставлено через ненадежный сервер SMTP (MTA). Ваш MTA не может хранить сообщения на удаленном MDA, и удаленный MTA не может отправить сообщения на Ваш MDA. Без полной синхронизации сообщений в обоих направлениях электронная почта внутрикомпании ("отправка между адресами электронной почты на нашей доменной" части) отправленный от офиса будет только сохранена на локальном MDA. Это означает, что пользователи, работающие далеко от офиса, не получили бы внутренние электронные письма при проверке размещенной учетной записи POP3.
Вам будет нужно в минимуме:
Локальный MTA для резервного копирования SMTP
Добавьте сервер SMTP своего почтового узла (удаленный MTA) в /etc/courier/esmtproutes
(или везде, где тот файл установлен на CentOS) заставить Курьера передать все сообщения к нему. Когда SMTP Вашего хоста снизится, локальный MTA поставит исходящую почту в очередь и повторит доставку к удаленному MTA в настраиваемом интервале.
Перенаправление портов
Настройте свой брандмауэр для передачи всего исходящего трафика на порте 25 к локальному MTA.
Можно реализовать только вышеупомянутое для самой простой конфигурации. Это не позволило бы внутренней почте продолжаться как нормальное, но это сделает удаленное время простоя MTA менее примечательным
Локальный MTA с размещенным доменом
Добавьте свой домен компании как размещенный домен для Курьера (локальный MTA) в /etc/courier/hosteddomains
. Это переопределит smarthost и передаст сообщения согласно настроенным правилам маршрутизации. См. makehosteddomains и Транспортные модули для получения дополнительной информации.
Локальный MDA и Прокси Это может быть реализовано во многих отношениях, но например:
... Или реализуйте внутренний DNS и:
или
Параметр смещение
для mount
не передается напрямую для монтирования, а в losetup
, который устанавливает петлевое устройство, которое относится к смещенному местоположению нижележащего блочного устройства. Затем Mount выполняет свои операции на этом устройстве цикла, а не на самом необработанном блочном устройстве.
Вы также можете использовать losetup
, чтобы заставить resize2fs
воспроизводить такие файловые системы:
# losetup --offset=<offset> --find --show /dev/<device>
/dev/loop0
# resize2fs /dev/loop0 <newsize>
# losetup --detach /dev/loop0
(Пример может быть неполным с помощью операций resize2fs)
losetup
ищет первое устройство свободного цикла (в этом примере / dev / loop0) как - find
был передан. - показать
вывод этого устройства петли в STDOUT.
Прежде чем я расширил файловую систему ext4 из свободного пространства в начале блочного устройства, я выполнил поиск, чтобы увидеть, как это делают другие, и похоже, что ваш вопрос был самым близким соответствием, которое я смог найти. Но предоставленный ответ - это не совсем то, что вы просили или мне было нужно. Поскольку мне только что удалось успешно изменить размер / рост диска с начала, я решил поделиться своими мыслями.
Краткое описание процедуры:
1.) Файловая система, которая будет увеличиваться / расширяться: файловая система ext4 на разделе, начинающемся в секторе 1026048 и заканчивающемся в конце блочного устройства ( / dev / sdb
в моем случае)
2.) Чтобы выделить неиспользуемые секторы в начале блочного устройства для этой файловой системы, мне пришлось переместить данные с помощью dd
в начало мой будущий / новый раздел
3.) Удалить старый раздел и воссоздать его с новым начальным сектором
4.) resize2fs
для расширения до размера нового раздела
Используемые команды и подробные сведения о методе:
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
(Информация, приведенная выше, раскрыта с помощью fdisk -l /dev/sdb
.)
Calculate dd
искать и пропускать смещения и bs
(в нашем случае bs
соответствует размеру сектора):
# dd seek=2048 skip=1026048 if=/dev/sdb bs=512 of=/dev/sdb
Итак, мы хотим переместить наши данные из сектора 1026048 и далее, чтобы начать с сектора 2048, где будет начинаться наш новый раздел. Мы не должны ничего потерять, поскольку чем больше мы читаем со входа, тем дальше мы получаем, поэтому к тому времени, когда мы начнем перезапись с выходом (он в конечном итоге достигнет сектора 1026048), мы скопировали бы то, что было на входе. начало устройства и двигаться дальше.
Затем используйте fdisk
, чтобы удалить старый раздел и воссоздать его, чтобы начать с сектора 2048.
Как только это будет сделано, вы можете запустить:
# partprobe /dev/sdb or
# blockdev --rereadpt /dev/sdb
# resize2fs /dev/sdb<num>
для расширения файловой системы.
Пожалуйста, всегда делайте резервные копии ваших данных перед выполнением подобных низкоуровневых процедур. Сбой на некоторых этапах, сбой системы или сбой питания приведут к потере данных. Это пример, описывающий один раздел на блочном устройстве. Ваши настройки могут отличаться, поэтому не используйте их как есть. Изучите и поймите, как это работает, затем протестируйте, и, если вы получите ожидаемые результаты, используйте свои живые данные на свой страх и риск!
Надеюсь, что это поможет и другим. Мы приветствуем обратную связь и то, что можно улучшить / сделать более подробным.
Спасибо!