Mengamankan seluruh data mail server: backup Maildir dan database dengan mysqldump, sinkronisasi incremental memakai doveadm backup, strategi restore dan verifikasi integrity Maildir, migrasi antar server via imapsync dan doveadm sync, serta pola backup offsite yang benar.

Semua konfigurasi yang kita bangun sejak episode 3 akan sia-sia jika data email hilang. Disk rusak, server diretas, atau kesalahan manusia — semuanya nyata. Episode ini membangun dua kemampuan: backup yang andal dan migrasi yang mulus.
Kita akan mencadangkan Maildir dan database, memulihkannya saat diperlukan, lalu memindahkan email antar server memakai doveadm backup/sync dan imapsync. Di akhir episode, kalian punya ritual backup yang bisa dijalankan otomatis.
Data mail server terbagi tiga lapisan:
main.cf, /etc/dovecot, /etc/letsencrypt, dan file map.Jangan hanya mencadangkan Maildir. Kehilangan database berarti kehilangan semua akun — dan kehilangan konfigurasi berarti kehilangan minggu kerja. Tiga-tiganya masuk jadwal backup.
Dump database dengan mysqldump dan kompres hasilnya:
mysqldump --single-transaction -u mail -p maildb | gzip > /backup/maildb-$(date +%F).sql.gz
mysqldump --single-transaction -u roundcube -p roundcubemail | gzip > /backup/roundcubemail-$(date +%F).sql.gz--single-transaction menghasilkan dump yang konsisten tanpa mengunci tabel lama. Hapus dump yang lebih tua dari jangka retensi agar disk backup tidak menumpuk:
find /backup -name "*.sql.gz" -mtime +30 -deleteMaildir sangat ramah backup karena berbentuk file. Ada dua pendekatan:
rsync — sederhana, tapi menyalin semua file setiap kali.doveadm backup — hanya menyalin yang berubah, dan menangani konflik antar user dengan benar.doveadm backup adalah cara resmi dan paling aman, karena dia memahami format Maildir dan status sinkronisasi:
doveadm backup -u admin@example.com /backup/vmail/Versi seluruh mailbox:
doveadm backup -A /backup/vmail/doveadm backup -A adalah salah satu pola paling umum di produksi. Karena sifatnya inkremental, backup kedua dan seterusnya jauh lebih cepat. Untuk skema cadangan, panggil rsync atau doveadm backup dari cron:
0 2 * * * doveadm backup -A /backup/vmail/Restore di Maildir cukup mudah: karena tiap pesan adalah file, pemulihan adalah penyalinan kembali. doveadm backup juga berfungsi sebagai restore — arahnya dibalik:
doveadm backup -u admin@example.com /backup/vmail/admin@example.com/Setelah restore, verifikasi integrity struktur Maildir:
find /var/mail/vhosts -type f | wc -l
ls -la /var/mail/vhosts/example.com/admin/Maildir/Pastikan folder cur/, new/, dan tmp/ ada dan tmp/ kosong — Maildir yang sehat tidak punya file tertinggal di tmp/ (file di sana menandakan penulisan yang terputus).
Migrasi penuh berarti memindahkan semua lapisan sekaligus: database, Maildir, dan konfigurasi. Ada dua jalur utama:
Jalur 1 — doveadm sync antar server. Untuk memindahkan email langsung tanpa melalui backup:
doveadm -D sync -u admin@example.com 'imapc:user=admin@example.com:pass=rahasia@old.example.com'Jalur 2 — imapsync. Tool populer yang memindahkan email antar server IMAP apa pun, bahkan yang bukan Dovecot:
imapsync --host1 old.example.com --user1 admin@example.com --password1 'rahasia' \
--host2 new.example.com --user2 admin@example.com --password2 'rahasia-baru'Keduanya mempertahankan folder dan flag email. Pilih doveadm sync saat kedua sisi Dovecot; pilih imapsync saat salah satu sisi bukan Dovecot.
Warning
Sebelum migrasi, uji dig MX example.com +short dari server baru dan pastikan DNS memakai TTL rendah (misalnya 300 detik) sehari sebelumnya. Saat switch, turunkan lagi ke nilai normal. Kalian akan melihat nanti bahwa koordinasi DNS adalah setengah dari pekerjaan migrasi.
Backup lokal tidak cukup — kebakaran, banjir, atau ransomware tidak peduli lokasi server. Terapkan pola 3-2-1: tiga salinan, dua media berbeda, satu di luar lokasi. Contoh implementasi ringkas:
/backup.rsync mingguan ke NAS atau VPS lain.rsync -az /backup/ backup@offsite.example.com:/backup/Uji restore secara berkala — backup yang tidak pernah diuji restore hanyalah ilusi keamanan. Catat waktu restore dalam dokumentasi; episode 22 akan menjadikan ini bagian checklist produksi.
Episode 12 selesai. Inti yang harus dibawa pulang:
mysqldump --single-transaction untuk dump yang konsisten.doveadm backup -A untuk sinkronisasi Maildir inkremental.doveadm backup; verifikasi tmp/ kosong setelahnya.doveadm sync (Dovecot-ke-Dovecot) atau imapsync.Data kalian aman. Di episode 13 kita mengunci gerbang: Autentikasi & SASL — menyambungkan Postfix ke socket auth Dovecot, memaksa autentikasi untuk submission, dan memilih mekanisme yang aman. Sampai jumpa di episode 13!