aboutsummaryrefslogtreecommitdiffstats
path: root/roles/dovecot/templates/usr/local/bin/dovecot-archive.sh.j2
blob: fa7bd85b80e4b3e71946c3888896d4788b3a5de7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash

set -Eeu -o pipefail

VMAIL_USER={{ dovecot_vmail_user | quote }}
{% raw %}
TMPDIR=$(mktemp -d .dovecot-XXXXXX)
trap 'rm -rf -- "$TMPDIR"' EXIT

chown "$VMAIL_USER" "$TMPDIR"
chgrp "$VMAIL_USER" "$TMPDIR"
chmod 770 "$TMPDIR"

doveadm user '*' | xargs -r -I{} doveadm -o plugin/quota= backup -n inbox -f -u {} "mdbox:$(readlink -f "$TMPDIR")/{}/mdbox:LAYOUT=fs"

TIMESTAMP=$(date +%Y%m%d%H%M%S)

tar czf "mailboxes-${TIMESTAMP}.tar.gz"       \
  --transform "s|^\.|mailboxes-${TIMESTAMP}|" \
  -C "$TMPDIR" .
{% endraw %}