Категории

Как перенести почту с одного сервера на другой и делать актуальный бэкап с помощью imapsync

2025-10-30 09:41:15 | Статья из категории: Linux

Синхронизация и перенос почты с одного сервера на другой с помощью imapsync

Иногда нужно перенести почту с одного сервера на другой — например, при смене хостинга, миграции на новый VPS или просто для резервного копирования. В этой статье я покажу, как это сделать с помощью утилиты imapsync, а также как настроить регулярную синхронизацию, чтобы резервная копия всегда оставалась свежей.

Почему именно imapsync?

imapsync — это надёжный инструмент для переноса почты между IMAP-серверами. Он работает на уровне сообщений, сохраняет структуру папок, флаги (прочитано/непрочитано), даты и даже UID'ы (если поддерживается). Главное — оба сервера должны поддерживать IMAP.

Важно: Postfix сам по себе не хранит почту и не предоставляет IMAP. Для работы с imapsync тебе нужен IMAP-сервер, например Dovecot или Cyrus.

Установка imapsync

На большинстве Linux-систем установка проста:

sudo apt update
sudo apt install imapsync

Если в репозиториях нет — можно установить через CPAN:

cpan install Mail::IMAPClient
cpan install Term::ReadKey
wget https://github.com/imapsync/imapsync/archive/master.tar.gz
tar -xzf master.tar.gz
cd imapsync-master
make install

Простой перенос почты: один раз

Пример команды для переноса почты с твоего старого сервера на Mail.ru (или любой другой IMAP-сервер):

imapsync \
  --host1 old-server.com \
  --user1 user@old-server.com \
  --password1 'пароль_от_старого_сервера' \
  --ssl1 \
  --host2 imap.mail.ru \
  --user2 your@mail.ru \
  --password2 'пароль_приложения_mailru' \
  --ssl2 \
  --noauthmd5 \
  --split1 100 \
  --split2 100 \
  --syncinternaldates

Разберём ключевые опции:

Как сделать регулярный бэкап (актуальную синхронизацию)

Чтобы почта всегда была в актуальном состоянии на резервном сервере, запускай imapsync по расписанию через cron.

Создай скрипт /root/backup-mail.sh:

#!/bin/bash
imapsync \
  --host1 old-server.com \
  --user1 user@old-server.com \
  --password1 'твой_пароль' \
  --ssl1 \
  --host2 backup-server.com \
  --user2 user@backup-server.com \
  --password2 'пароль_резерва' \
  --ssl2 \
  --noauthmd5 \
  --syncinternaldates \
  --useuid \
  --addheader

Флаги --useuid и --addheader помогают избежать дублирования при повторных запусках.

Сделай скрипт исполняемым:

chmod +x /root/backup-mail.sh

Добавь в cron (например, каждую ночь в 2:00):

crontab -e

И вставь строку:

0 2 * * * /root/backup-mail.sh >> /var/log/mail-backup.log 2>&1

Теперь каждый день в 2 ночи будет происходить синхронизация, и в логе будет видно, что перенеслось.

Скорость работы: что влияет?

Скорость переноса зависит от нескольких факторов:

В среднем, на сервере с хорошим каналом и 10 ГБ почты перенос занимает от 30 минут до 2 часов. При повторной синхронизации (бэкапе) imapsync проверяет UID и переносит только новые письма — это занимает секунды или минуты.

Важные советы

!!!!!!!\/\/\/ с официального сайта лучше инфа, проверил все четко\/\/\/!!!!

чет нейросеть негенрила фигню, наверное мало ее гонял потеме ) короч в репозиториях нет imapsync потому apt get install не сработает. Ну покране мере на моей Ubuntu 24.04.3 LTS не было. Короч вот нашел официальную докумнтацию как ставить и как пользоваться.

Установка imapsync на Ubuntu 16.04 и выше

Для установки зависимостей imapsync потребуются права root. Выполните следующую команду:

sudo apt-get install \
libauthen-ntlm-perl \
libclass-load-perl \
libcrypt-openssl-rsa-perl \
libcrypt-ssleay-perl \
libdata-uniqid-perl \
libdigest-hmac-perl \
libdist-checkconflicts-perl \
libencode-imaputf7-perl \
libfile-copy-recursive-perl \
libfile-tail-perl \
libio-compress-perl \
libio-socket-inet6-perl \
libio-socket-ssl-perl \
libio-tee-perl \
libjson-webtoken-perl \
libmail-imapclient-perl \
libmodule-scandeps-perl \
libnet-dbus-perl \
libnet-dns-perl \
libnet-ssleay-perl \
libpar-packer-perl \
libproc-processtable-perl \
libreadonly-perl \
libregexp-common-perl \
libsys-meminfo-perl \
libterm-readkey-perl \
libtest-fatal-perl \
libtest-mock-guard-perl \
libtest-mockobject-perl \
libtest-pod-perl \
libtest-requires-perl \
libtest-simple-perl \
libunicode-string-perl \
liburi-perl \
libtest-nowarnings-perl \
libtest-deep-perl \
libtest-warn-perl \
make \
time \
cpanminus

Если вы хотите обновить основной Perl-модуль Mail::IMAPClient вручную, выполните:

sudo cpanm Mail::IMAPClient

Запуск и установка imapsync

После установки зависимостей вы можете использовать imapsync без прав root.

Скачайте актуальную версию напрямую с официального репозитория:

wget -N https://raw.githubusercontent.com/imapsync/imapsync/master/imapsync
chmod +x imapsync

Или с основного сайта:

wget -N https://imapsync.lamiral.info/imapsync
chmod +x imapsync

Проверьте зависимости и посмотрите пример использования:

./imapsync

Запустите тестовую синхронизацию (требуется интернет):

./imapsync --testslive

Чтобы установить imapsync системно (снова нужны права root):

sudo cp imapsync /usr/bin/

Теперь вы можете вызывать imapsync из любого места:

./imapsync \
  --host1 pochta.site.ru \
  --user1 user@site.ru \
  --password1 'passssss$' \
  --ssl1 \
  --host2 imap.mail.ru \
  --user2 user@site.ru \
  --password2 'passssss' \
  --ssl2 \
  --noauthmd5 \
  --split1 100 \
  --split2 100 \
  --syncinternaldates

Подробное руководство и примеры использования доступны в официальном учебнике для Unix.

Заключение

Перенос почты — задача, которая кажется сложной, но на деле решается парой команд. imapsync — проверенный инструмент, который работает годами. А регулярная синхронизация через cron превращает его в надёжную систему резервного копирования.

Если у тебя есть свои нюансы (например, Dovecot на обеих сторонах, или нужно перенести 50 ящиков), — пиши в комментарии, разберём вместе.

Удачи в миграциях и бэкапах! 📬

Теги: #imapsync

Комментарии

Пока нет комментариев. Будьте первым!

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

← Назад к списку статей

Важно: Блог-эксперимент

Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.

Посетителей сегодня: 0


кто я | книга | контакты без контактов

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA