Situation:
Ich habe ein Offline-Backup mit E-Mails im Umfang von mehreren Gigabyte. Nach einigem Lesen habe ich bestätigt, dass die E-Mails über rsync in MailDir auf meinem neuen Server wiederhergestellt werden können.
Meine eher grundlegende Frage:
Dateinamen...
In meinem Offline-Backup-Verzeichnis enthalten alle E-Mails den alten Servernamen im Dateinamen der E-Mails:
Da mein aktueller Hostname lautet admin.example.com
, sollte ich zuerst eine Art Batch einrichten, search and replace
um server1.old-example.com
durch admin.example.com
… zu ersetzen und dann das Rsync vom Offline-Backup zum Online-MailDir ausführen?
Wenn ja, welche Methode wird empfohlen?
Danke
Antwort1
Der Hostname spielt keine Rolle, alles bis auf den ersten ,
ist einfach eine eindeutige ID ohne definiertes Format. (Der Zweck der Einbeziehung eines Hostnamens besteht darin, die Eindeutigkeit des Dateinamens sicherzustellen – wenn beispielsweise mehrere MX-Server über NFS in dasselbe Maildir liefern, wird dadurch sichergestellt, dass selbst Nachrichten, die genau im selben Moment geliefert werden, nicht kollidieren.)
Kopieren Sie also einfach Ihr gesamtes Maildir auf den neuen Server und alles sollte funktionieren; der neue IMAP-Server wird gefundene Nachrichten unabhängig von Hostnamen abrufen cur/
. (Wie in den Kommentaren erwähnt, stellen Sie jedoch sicher, dass die UID/GID-Eigentümerschaft korrekt ist.)
(Allerdings würde ich wahrscheinlich alten serverspezifischen Müll wie „dovecot.index“-Dateien löschen, bevor ich sie auf den neuen Server hochlade.)
Achten Sie darauf, keine Unterordner zu übersehen – sie werden normalerweise als versteckte Unterverzeichnisse gespeichert, z. B. wäre der Ordner „Archive/2022“ versteckt Maildir/.Archive.2022/
. Die Art und Weise, wie Unterordner gespeichert werdenMaiunterscheiden sich zwischen Servern.
Wenn die direkte Wiederherstellung fehlschlägt, können Sie Nachrichten stattdessen über IMAP hochladen (wobei der Server sie nach Belieben speichern kann), z. B. mithilfe der terminalbasierten E-Mail-Apps mutt
:neomutt
Ausführen
mutt -f ~/Mail_backup/
, um ein lokales Maildir zu öffnen (schließen Sie den Teil „cur/“ nicht ein!).Mit dieser Option können Sie Shift+T
.
Enteralle Nachrichten auswählen („markieren“).Verwenden Sie es ; Shift+Czum „Kopieren“ und geben Sie dann die URL des Ziel-IMAP-Servers an.
Markiert ins Postfach kopieren:imaps://[email geschützt]/Posteingang
Hinweis: Unterordner können je nach IMAP-Servertyp entweder
Archive.2022
oder heißen. (Dies könnte sogar der Fall sein , wenn es sich um einen Courier-Server handelt, der darauf besteht, alle Unterordner unter INBOX zu platzieren.)Archive/2022
INBOX.Archive.2022
Nachdem alle Nachrichten hochgeladen wurden, xbeenden Sie den Vorgang, ohne die Änderungen zu speichern (nur für den Fall, dass Sie versehentlich welche vorgenommen haben) und gehen Sie zurück zu Schritt 1, um die verbleibenden Unterordner wiederherzustellen.