![使用 git 备份 imap mbox,这是一个好主意吗?](https://linux22.com/image/1349452/%E4%BD%BF%E7%94%A8%20git%20%E5%A4%87%E4%BB%BD%20imap%20mbox%EF%BC%8C%E8%BF%99%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E4%B8%BB%E6%84%8F%E5%90%97%EF%BC%9F.png)
我正在尝试设置一个新的邮件服务器供我个人使用,并且我想比以前做得更好。
我一直担心的一件事是备份我的收件箱和其他文件夹。过去,我使用 POP3 和 Mozilla App Suite / SeaMonkey 作为客户端,并且总是发现备份很麻烦,因为部分备份非常麻烦(缺少基于年份存储消息,重命名和移动内容(然后再也不移动它们),这在 Windows 上很难编写脚本,并且限制您每年备份一次,这很烦人)。此外,设置与一台 PC 绑定,这是我想避免的另一件事。
我现在正在考虑使用 Dovecot IMAP4,并使用 git 每周、每天、每小时或每条消息备份服务器上的 mbox 和其他文件夹。
使用 git 和几个 mbox 文件(邮件文件夹),如果一封电子邮件从一个 mbox 移动到另一个 mbox(例如,到达收件箱,然后移动到一个文件夹),git 会找出所有这种各种电子邮件移动到各种文件夹的情况吗?
使用 git 备份 imap mbox 文件听起来可行吗?实用吗?这是一个好主意吗?它会起作用吗?设置起来相对容易吗?
或者我应该放弃 mbox,转而使用 maildir?git 使用 maildir 会更好吗?
答案1
我不知道有人使用 git 来备份邮箱/邮件目录......
我正在使用本地rsync
到另一个文件夹进行备份,我猜想 git 版本控制只会使目标文件夹变得混乱。
使用 Dovecot 和 IMAPv4 以及主目录中的 Maildir 来存储您的邮件,在大多数情况下它速度更快,并且可以避免可能出现的锁定问题。
答案2
我将远程 IMAP 邮件备份到由 git 进行版本控制的本地 Maildir 目录中。这有点怪异和黑客化,但我认为如果您不想丢失任何电子邮件并且希望即使意外删除了远程 IMAP 上的一堆邮件也能保证安全,这是一种很好的方法。执行此工作的脚本的工作方式如下:
- IMAP 服务器上的所有远程邮件都与本地 Maildir 目录同步。我使用
imapsync
它。 - 然后,此本地 Maildir 中的邮件文件将复制到版本控制的 git-Maildir 目录中。原始目录结构不会保留,因为这对我来说并不重要。相反,git-Maildir 包含每年的一个文件夹,邮件文件将根据邮件文件的日期标头复制到年份文件夹中。我使用
mu
(mailbox utils)进行分类工作。 - 下一步,脚本会自动将新文件添加并提交到 git 存储库。
有了它,我就可以本地备份所有电子邮件。即使我在远程端删除邮件,我仍然有本地副本。本地 git 存储库的优点是数据安全。即使我在本地备份中弄乱了文件,我也可以查看提交历史记录中的完整历史记录,并且可以恢复已删除的邮件。
maildir 相对于 mbox 的优势在于,使用 maildir 时,每封邮件都有一个文件,而不是每次添加新邮件时都会更改的庞大 mbox 文件。每封邮件一个文件可以形成一个很好的 git 历史记录。