Projekt

Allgemein

Profil

MailCow » Historie » Revision 5

Revision 4 (Jeremias Keihsler, 31.01.2023 19:36) → Revision 5/7 (Jeremias Keihsler, 16.10.2023 08:27)

h1. MailCow 

 h2. Backup-Mailserver 

 interesting article covering that topic 
 https://autoize.com/backup-mx-configuration-for-mailcow/ 

 h3. Backup 

 taken from https://mailcow.github.io/mailcow-dockerized-docs/b_n_r_backup/ 

 create backup-target-location 

 <pre><code class="shell"> 
 mkdir /mnt/mailcow_backups 
 </code></pre> 

 create daily-backup-script @/etc/cron.daily/mailcow_backup.sh@ 
 <pre><code class="shell"> 
 #!/bin/sh 

 # Backup mailcow data 
 # https://mailcow.github.io/mailcow-dockerized-docs/b_n_r_backup/ 

 set -e 

 OUT="$(mktemp)" 
 export MAILCOW_BACKUP_LOCATION="/mnt/mailcow_backups" 
 SCRIPT="/opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh" 
 PARAMETERS="backup all" 
 OPTIONS="--delete-days 30" 

 # run command 
 set +e 
 "${SCRIPT}" ${PARAMETERS} ${OPTIONS} 2>&1 > "$OUT" 
 RESULT=$? 

 if [ $RESULT -ne 0 ] 
     then 
             echo "${SCRIPT} ${PARAMETERS} ${OPTIONS} encounters an error:" 
             echo "RESULT=$RESULT" 
             echo "STDOUT / STDERR:" 
             cat "$OUT" 
 fi 
 </code></pre> 

 


 h2. automatically delete mails older than in any given mailbox/folder 

 <pre><code class="shell"> 
 vim /usr/local/bin/tidyup_mailbox.sh 
 </code></pre> 

 <pre><code class="shell"> 
 #!/bin/bash 

 # JKE 2023-10-16 
 # path to mailcow-dockerized 
 cd /opt/mailcow-dockerized 

 sudo docker compose exec dovecot-mailcow doveadm expunge -u 'user@example.com' mailbox 'FromServerMail' before 2w 
 sudo docker compose exec dovecot-mailcow doveadm expunge -u 'user@example.com' mailbox 'FromServerMail/Crond' before 6w 
 sudo docker compose exec dovecot-mailcow doveadm expunge -u 'user@example.com' mailbox 'FromServerMail/Fail2Ban_2' before 5d 
 sudo docker compose exec dovecot-mailcow doveadm expunge -u 'user@example.com' mailbox 'FromServerMail/Logwatch' before 2w 
 sudo docker compose exec dovecot-mailcow doveadm expunge -u 'user@example.com' mailbox 'FromServerMail/ztrash' before 1w 
 </code></pre> 

 add this to cron 

 <pre><code class="shell"> 
 vim /etc/cron.d/tidyup_mailbox 
 </code></pre> 

 <pre><code class="shell"> 
 # JKE 2023-10-16 
 # 
 #      min    hr     dom    month dow      user      command 
 #      -      -      -      -       - 
 #      |      |      |      |       | 
 #      |      |      |      |       +-day of week (0-7) sunday=0 or 7 
 #      |      |      |      +---------month (1-12) 
 #      |      |      +----------------day of month (1-31) 
 #      |      +-----------------------hour (0-23) 
 #      +------------------------------min (0-59) 
 # 
      57     23     *      *       *      root      /usr/local/bin/tidyup_mailbox.sh 
 </code></pre> 

 h2. Debug 

 

 h3. logs 

 in-memory logs are sometimes not enough ... 
 find @mailcow.conf@, start in it's directory 

 <pre><code class="shell"> 
 docker compose logs 
 </code></pre>