Mailcow Mail Yedeklerini SFTP ile Yedekleme

Mailcow – CyberPanel Entegre Yedekleme ve Bulut Senkronizasyon Altyapısı

1. Neler Yapılacak

Bu doküman, Mailcow e-posta sunucusu ile CyberPanel web yönetim paneli arasında tam otomatik bir yedekleme zincirinin nasıl kurulacağını anlatır.
Amaç, e-posta verilerinin günlük olarak güvenli bir şekilde yedeklenmesi ve bu yedeklerin CyberPanel üzerinden Google Drive bulut hesabına otomatik aktarılmasıdır.

Kurulum sonrası yapı şu şekilde çalışır:

  1. Mailcow her gün kendi yedeğini oluşturur.
  2. Yedekler, CyberPanel üzerinde barındırılan uzak dizine SFTP ile aktarılır.
  3. CyberPanel’in Google Drive senkronizasyon sistemi bu yedekleri buluta gönderir.
  4. 2 günden eski yedekler otomatik olarak temizlenir.

2. Sunucu Rolleri

Sunucu Rol Alan Adı
Mailcow Sunucusu E-posta sistemi ve yedekleme kaynağı mail.test1.mekait.com
CyberPanel Sunucusu Web panel, Google Drive yedekleyici panel.test2.mekait.com
Google Drive Uzun süreli dış yedekleme alanı drive.google.com

3. CyberPanel Sunucusu Üzerinde Hazırlık

CyberPanel üzerinde yeni bir site oluşturulur:

backup-server.test3.mekait.com

Oluşturulan sitenin kök dizini:

/home/backup-server.test3.mekait.com/

Bu dizin altında Mailcow yedeklerinin toplanacağı klasör oluşturulur:

mkdir -p /home/backup-server.test3.mekait.com/public_html/mailyedek
chown -R backupuser:backupuser /home/backup-server.test3.mekait.com/public_html/mailyedek

4. Mailcow Sunucusunda SFTP Mount İşlemi

Mailcow tarafında günlük yedeklerin yazılacağı uzak dizin, SSHFS üzerinden bağlanır:

apt install sshfs -y
mkdir -p /opt/backup-server3
sshfs -o allow_other,IdentityFile=/root/.ssh/id_rsa,reconnect \
[email protected]:/home/backup-server.test3.mekait.com/public_html/mailyedek \
/opt/backup-server3

Kalıcı hale getirmek için /etc/fstab dosyasına şu satır eklenir:

[email protected]:/home/backup-server.test3.mekait.com/public_html/mailyedek /opt/backup-server3 fuse.sshfs defaults,_netdev,allow_other,IdentityFile=/root/.ssh/id_rsa,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 0 0

5. Mailcow Günlük Yedekleme Görevi

Mailcow kendi yedekleme aracını (backup_and_restore.sh) kullanarak günlük yedekleri otomatik oluşturur.
Bu işlem, her gece 02:15’te cron aracılığıyla tetiklenir.

Cron dosyası:
/etc/cron.d/mailcow-backup

İçerik:

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAILTO=""

15 2 * * * root /usr/bin/printf '/opt/backup-server3\n' | /bin/bash /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all >> /var/log/mailcow-backup.log 2>&1

Bu görev, her gün saat 02:15’te /opt/backup-server3 dizinine tam Mailcow yedeği alır.

6. Eski Yedeklerin Otomatik Silinmesi

Disk alanının dolmaması için, 2 günden eski yedekler her sabah 04:00’te otomatik silinir.

Cron dosyası:
/etc/cron.d/mailcow-cleanup

İçerik:

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAILTO=""

0 4 * * * root find /opt/backup-server3 -maxdepth 1 -type d -name "mailcow-*" -mmin +2880 -exec rm -rf {} \; >> /var/log/mailcow-cleanup.log 2>&1

7. CyberPanel Üzerinde Google Drive Yedekleme

CyberPanel GUI üzerinden “Incremental Backups” sekmesinde Google Drive bağlantısı yapılandırılır.
Planlanan günlük veya haftalık görevler şu cron üzerinden çalışır:

0 0 * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/IncBackups/IncScheduler.py Daily
0 0 * * 0 /usr/local/CyberCP/bin/python /usr/local/CyberCP/IncBackups/IncScheduler.py Weekly

Bu görevler manuel olarak da başlatılabilir.

8. CyberPanel Google Drive Yedeklemesini Manuel Başlatma

Yedekleme görevini elle (anında) başlatmak için CyberPanel sunucusunda aşağıdaki komut kullanılır:

/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py Daily

Google Drive’a yükleme süreci şu log dosyasından izlenebilir:

tail -f /home/cyberpanel/logs/IncBackups.log

Tam Otomatik İş Akışı

  1. 02:15 – Mailcow yedeği alınır → /opt/backup-server3
  2. 02:20 – Yedek otomatik olarak Panel03 (CyberPanel) tarafına aktarılır
  3. 04:00 – Eski yedekler temizlenir
  4. 05:00 – CyberPanel, mevcut yedeği Google Drive’a yükler

Bu yapı sayesinde:

  • Yedekler güvenli, katmanlı ve otomatik olarak alınır.
  • E-posta sistemindeki tüm veriler harici bir depoya yedeklenir.
  • CyberPanel aracılığıyla bulut (Google Drive) senkronizasyonu sağlanır.
  • Disk doluluğu kontrol altında tutulur.
  • İnsan müdahalesi olmadan sürdürülebilir bir yedekleme altyapısı elde edilir.

dipnot


cat >/etc/cron.d/mailcow-backup <<'EOF'
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAILTO=""

# Her gün 04-15te Mailcow tam yedeği al
15 4 * * * root /usr/bin/printf '/opt/backup-server5\n' | /bin/bash /opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all >> /var/log/mailcow-backup.log 2>&1
EOF

chmod 644 /etc/cron.d/mailcow-backup
systemctl restart cron
systemctl status cron

—————————————————————


cat >/etc/cron.d/mailcow-cleanup <<'EOF'
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAILTO=""

# Her sabah 03-55te  1 dakikadan eski yedekleri sil
55 3 * * * root find /opt/backup-server5 -maxdepth 1 -type d -name "mailcow-*" -mmin +1 -exec rm -rf {} \; >> /var/log/mailcow-cleanup.log 2>&1
EOF

chmod 644 /etc/cron.d/mailcow-cleanup
systemctl restart cron
systemctl status cron