Вопрос или проблема
Какие инструменты Linux помогают делать резервные копии и восстанавливать IMAP почтовый аккаунт, включая всю почту и подпапки?
Я ожидаю отключения для крупных IMAP аккаунтов по причине
- ограничений ресурсов на сервере
- риска прерывания, который увеличивается с продолжительностью.
Программное обеспечение должно иметь возможность переподключиться и продолжить выполнение задачи после любого прерывания. Для повторяющихся резервных копий может быть очень удобно использовать инкрементальные резервные копии и запускать сценарий резервного копирования в 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. В теме также упоминается форк:
Мои поиски привели меня к этим дополнительным вариантам:
- isync (имя пакета для
mbsync
команды)
Домашняя страница | Страница Arch Wiki | Доступность дистрибутивов/пакетов
Следующие пакеты доступны на 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.
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 почтовых аккаунтов. Вот несколько популярных решений:
-
imapsync:
- Это один из лучших инструментов для синхронизации IMAP-аккаунтов, который поддерживает множество функций, включая возможность возобновления после прерывания. Существуют документация и ресурсы на GitHub. Также доступен Docker-контейнер с официальным изображением на Docker Hub.
-
offlineimap:
- Этот инструмент позволяет синхронизировать ваши почтовые ящики на локальную файловую систему в формате Maildir. Поддерживает работу в офлайн-режиме и имеет возможность восстановления на IMAP-сервер. Более подробную информацию можно найти на официальном сайте и GitHub.
-
imap-backup:
- Это удобный Ruby-скрипт, который позволяет ускорить процесс резервного копирования IMAP-аккаунтов. Он предлагает простой в использовании интерфейс командной строки и поддерживает хранение данных в пользовательском заданном каталоге. Подробности и руководство представлены на GitHub.
-
isync (mbsync):
- Этот инструмент позволяет синхронизировать локальные директории с IMAP-буферами. Подробности можно найти на официальной странице.
-
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 обеспечат надежность и доступность ваших данных. Убедитесь, что выбранные вами инструменты поддерживают восстановление после прерываний, так как это критично для больших почтовых аккаунтов с многочисленными подкаталогами.