Перейти к содержанию

Восстановление случайно удаленных данных

Итак, вы удалили почтовый ящик и у вас нет резервных копий, верно?

Если вы заметили ошибку в течение нескольких часов, вы, вероятно, сможете восстановить данные пользователя.

SOGo

Мы автоматически создаем ежедневные резервные копии (интервал 24 часа с момента запуска up -d) в /var/lib/docker/volumes/animailsdockerized_sogo-userdata-backup-vol-1/_data/.

Убедитесь, что пользователь, которого вы хотите восстановить, существует в вашем animails. Создайте его заново, если он отсутствует.

Скопируйте файл, названный по имени пользователя, которого вы хотите восстановить, в __MAILCOW_DIRECTORY__/data/conf/sogo.

  1. Скопируйте резервную копию: cp /var/lib/docker/volumes/animailsdockerized_sogo-userdata-backup-vol-1/_data/restoreme@example.org __MAILCOW_DIRECTORY__/data/conf/sogo/restoreme@example.org

  2. Выполните следующую команду:

    docker compose exec -u sogo sogo-animails sogo-tool restore -F ALL /etc/sogo restoreme@example.org
    
    docker-compose exec -u sogo sogo-animails sogo-tool restore -F ALL /etc/sogo restoreme@example.org
    

    Info

    Запустите sogo-tool без параметров, чтобы проверить возможные варианты восстановления, если приведенная выше команда вам не подходит.

  3. Удалите скопированную резервную копию, выполнив rm __MAILCOW_DIRECTORY__/data/conf/sogo/restoreme@example.org

  4. Перезапустите SOGo и Memcached:

docker compose restart sogo-animails memcached-animails
docker-compose restart sogo-animails memcached-animails

Почта

В случае случайного удаления почтового ящика у вас будет возможность восстановить его в течение (по умолчанию) 5 дней. Это зависит от параметра MAILDIR_GC_TIME в animails.conf.

Удаленный почтовый ящик копируется в зашифрованном виде в /var/lib/docker/volumes/animailsdockerized_vmail-vol-1/_data/_garbage.

Папка внутри _garbage имеет структуру [timestamp]_[domain_sanitized][user_sanitized], например, 1629109708_exampleorgtest в случае удаления test@example.org в 1629109708.

Для восстановления убедитесь, что вы восстанавливаете данные в тот же animails, из которого они были удалены, или используете те же ключи шифрования в crypt-vol-1.

Убедитесь, что пользователь, которого вы хотите восстановить, существует в вашем animails. Создайте его заново, если он отсутствует.

Скопируйте папки из /var/lib/docker/volumes/animailsdockerized_vmail-vol-1/_data/_garbage/[timestamp]_[domain_sanitized][user_sanitized] обратно в /var/lib/docker/volumes/animailsdockerized_vmail-vol-1/_data/[domain]/[user], выполните синхронизацию папки и пересчитайте квоту:

docker compose exec dovecot-animails doveadm force-resync -u restoreme@example.net '*'
docker compose exec dovecot-animails doveadm quota recalc -u restoreme@example.net
docker-compose exec dovecot-animails doveadm force-resync -u restoreme@example.net '*'
docker-compose exec dovecot-animails doveadm quota recalc -u restoreme@example.net