Резервное копирование и восстановление аккаунта IMAP почты с помощью (открытых) инструментов Linux

Вопрос или проблема

Какие инструменты Linux помогают делать резервные копии и восстанавливать IMAP почтовый аккаунт, включая всю почту и подпапки?

Я ожидаю отключения для крупных IMAP аккаунтов по причине

  1. ограничений ресурсов на сервере
  2. риска прерывания, который увеличивается с продолжительностью.

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

Обновлено в октябре 2024 года.

Первоначально ответ был дан, когда вопросу было ‘всего лишь’ 7 лет, сейчас ему примерно 10 лет. В то время я искал решение для миграции с Google Workspaces, так как они собирались начать взимать плату с пользователей своей бесплатной версии.

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

Хронология ответов:

  • В 2014 году Мехмет упомянул imapsync
    Это, вероятно, все еще самое целеустремленное решение, которое поддерживается, даже сейчас в 2024 году, так как это активный источник дохода для автора, Жиля Ламирала. Исходный код доступен, в данный момент последняя версия кода находится на GitHub

    Хотя это приложение недоступно как пакет дистрибутива (как некоторые другие варианты), у него есть официальное изображение, размещенное в docker-hub по адресу gilleslamiral/imapsync. Для получения дополнительной информации см.: https://imapsync.lamiral.info/INSTALL.d/Dockerfile

    docker-контейнер изображение для WebUI доступно, его обновляли примерно 2 года назад, что совпадает с изменениями кода WebUI в репозитории GitHub. Это было сделано Лукасом Силвой, а не оригинальным автором.

    Интересно, что Жиль Ламорал поддерживает список аналогичных приложений на своем веб-сайте. Посмотрите это.

  • В 2017 году Куаринд упомянул imap-backup

    Это решение на основе Ruby, которое все еще поддерживается.

  • В 2021 году Патрик Декат упомянул OfflineIMAP

    offlineimap основан на Python2 и не совсем поддерживается.

    offlineimap3 – это форк на базе Python3, который активно поддерживается

    Доступно в большинстве дистрибутивов

Согласно этой открытой проблеме в offlineimap3, хотя новое обновление не выходило уже несколько лет, проект все еще поддерживается и в него были слиты относительно недавние PR. В теме также упоминается форк:

Мои поиски привели меня к этим дополнительным вариантам:

Следующие пакеты доступны на Debian 11 (bullseye), но я еще не знаю о них много:

  • imapcopy

    Не поддерживается с ~2009
  • interimap

    Все еще активно поддерживается на веб-сайте разработчика
  • mailsync

    На SourceForge
  • mswatch

    репозиторий. Требует чего-то для фактической синхронизации.
  • vdirsyncer

    сайт. Спутник для других IMAP синхронизаторов, для синхронизации календаря и контактов.

Специально для почтовых ящиков Gmail / Google Workspace*:
* Не является решением IMAP, но может быть связано с поиском кого-то, поэтому считаю, что стоит упомянуть

  • Got Your Back – Все еще активно
  • Gmvault GitHub – Кажется, заброшен примерно на 2 года

Я постараюсь поддерживать этот список в актуальном состоянии, так как вижу, что он по-прежнему привлекает интерес время от времени.

Попробуйте использовать проект с открытым исходным кодом imap-backup: https://github.com/joeyates/imap-backup

$ imap-backup setup

Система установки – это приложение командной строки с меню.

Она создает каталог ~/.imap-backup и файл конфигурации. Например:

{
  "accounts":
  [
    {
      "username": "[email protected]",
      "password": "секрет",
      "local_path": "/path/to/backup/root",
      "folders":
        [
          {"name": "[Gmail]/Все письма"},
          {"name": "my_folder"}
        ]
    }
  ]
}

Он подключается к GMail по умолчанию, но вы также можете указать сервер:

{
  "accounts":
  [
    {
      "username": "[email protected]",
      "password": "секрет",
      "server": "my.imap.example.com",
      "local_path": "/path/to/backup/root",
      "folders":
        [
          {"name": "[Gmail]/Все письма"},
          {"name": "my_folder"}
        ]
    }
  ]
}

OfflineIMAP – это программное обеспечение GPLv2 для управления вашими почтовыми ящиками как локальными Maildir.

Например, это позволяет читать письма в оффлайн-режиме без необходимости, чтобы ваш почтовый клиент (MUA) поддерживал операции в отключенном режиме.

OfflineIMAP будет синхронизировать обе стороны через IMAP.

http://www.offlineimap.org/

https://github.com/OfflineIMAP/offlineimap

Также поддерживает восстановление на IMAP сервер: http://www.offlineimap.org/doc/backups-restore.html

Вы можете использовать imapsync для этого. Вы можете получить исходный код со страницы fedorahosted.org imapsync. Zimbra Guide to imapsync содержит хорошую документацию по этой теме.

Больше связано с резервным копированием, чем с вашими вопросами, но я только что нашел и начал тестировать mailpiler. Не уверен, что мне нравится идея предоставления доступа ко “всем” письмам, поэтому работаю над тем, как отправлять “старые” письма на регулярной основе для их хранения.

В данный момент мы используем расширение Awesome Auto Archive для thunderbird, чтобы “перемещать” письма в другой учетной записи.

“cp -pr” должно справиться с задачей. Опция “r” в “pr” должна позаботиться о подпапках и любых скрытых файлах/каталогах.

Ответ или решение

Резервное копирование и восстановление IMAP почтового аккаунта с использованием инструментов Linux

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

Шаг 1: Выбор подходящего инструмента

Существует множество инструментов с открытым исходным кодом, которые помогут в резервном копировании и восстановлении IMAP почтовых аккаунтов. Вот несколько популярных решений:

  1. imapsync:

  2. offlineimap:

    • Этот инструмент позволяет синхронизировать ваши почтовые ящики на локальную файловую систему в формате Maildir. Поддерживает работу в офлайн-режиме и имеет возможность восстановления на IMAP-сервер. Более подробную информацию можно найти на официальном сайте и GitHub.
  3. imap-backup:

    • Это удобный Ruby-скрипт, который позволяет ускорить процесс резервного копирования IMAP-аккаунтов. Он предлагает простой в использовании интерфейс командной строки и поддерживает хранение данных в пользовательском заданном каталоге. Подробности и руководство представлены на GitHub.
  4. isync (mbsync):

    • Этот инструмент позволяет синхронизировать локальные директории с IMAP-буферами. Подробности можно найти на официальной странице.
  5. vdirsyncer:

    • Хотя этот инструмент в основном используется для синхронизации календарей и контактов, он может быть полезен в сочетании с другими IMAP-синхронизаторами.

Шаг 2: Настройка резервного копирования

При использовании любого из вышеперечисленных инструментов необходимо учитывать следующее:

  • Обработайте вложенные папки: Убедитесь, что выбранный инструмент поддерживает резервное копирование всех подпапок.
  • Инкрементное резервное копирование: Настройка инкрементного резервного копирования, чтобы избежать необходимости повторного резервирования уже сохраненных данных.
  • Планировщики задач: Используйте cron для автоматизации процесса резервного копирования, чтобы он запускался в удобное время, например, раз в день или раз в неделю.
Пример конфигурации для imapsync

Чтобы использовать imapsync, вам нужно выполнить следующую команду:

imapsync --host1 old.imap.server.com --user1 old_user@example.com --password1 'old_password' \
         --host2 new.imap.server.com --user2 new_user@example.com --password2 'new_password'

Шаг 3: Восстановление данных

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

Например, при использовании offlineimap, настройте .offlineimaprc файл, чтобы указать информацию о сервере и запустите:

offlineimap

Заключение

Резервное копирование и восстановление IMAP аккаунтов в Linux — это важный процесс, который можно упростить с помощью правильных инструментов. Выбор подходящего приложения, его настройка для резервного копирования всех нужных папок, а также автоматизация через cron обеспечат надежность и доступность ваших данных. Убедитесь, что выбранные вами инструменты поддерживают восстановление после прерываний, так как это критично для больших почтовых аккаунтов с многочисленными подкаталогами.

Оцените материал
Добавить комментарий

Капча загружается...