TGZ 내보내기를 사용하여 Zimbra CE 사서함을 백업 및 복원하는 방법

Zimbra Community Edition(CE) 사서함 하나를 백업하려면 `export` 명령어를 사용하여 TGZ 파일로 내보내고 zmmailbox getRestURL, 아카이브의 유효성을 검사한 다음, `restore` 명령어를 사용하여 복원하십시오 postRestURL. 이미 메일이 있는 계정으로 가져올 때는 `export` 명령어로 시작하십시오 . 사서함 루트에서 `restore` 명령어를 resolve=skip사용하면 기존 항목이 삭제될 수 있습니다.resolve=reset

사서함별 내보내기가 보호하는 내용을 이해하세요

Zimbra는 REST 인터페이스 및 유틸리티를 통해 TGZ 내보내기 및 가져오기 zmmailbox기능을 제공합니다. 이 아카이브는 사서함 내용과 폴더 구조를 포함하며, EML 파일로 패키징된 이메일 메시지와 해당 캘린더, 연락처, 작업 또는 브리프케이스 데이터를 전송합니다. 가져오기 과정에서 어떤 콘텐츠와 메타데이터가 그대로 유지되는지는 원본 및 대상 버전과 전송되는 항목에 따라 달라질 수 있습니다.

이 기능을 전체 계정 또는 서버 백업과 혼동하지 마십시오. TGZ 콘텐츠 내보내기는 누락된 계정을 프로비저닝하거나 모든 LDAP 속성, 암호, 별칭, 서비스 등급 할당, 라우팅 설정, 필터, 권한 부여 또는 서버 구성을 독립적으로 보존하지 않습니다. 필요한 계정 설정은 관리 절차를 사용하여 별도로 기록하십시오. zmbackup이전 Zimbra 설명서에 설명된 유틸리티는 표준 CE 워크플로가 아닌 네트워크 에디션에 속합니다.

명령어 예제는 Zimbra의 공식 인터페이스를 따르지만, 모든 독립적으로 빌드된 CE 릴리스에 대한 실시간 테스트는 아닙니다. 프로덕션 복구를 계획하기 전에 도움말 및 빌드 릴리스 노트를 확인하십시오 zmcontrol -v. zmmailbox또한 실시간 REST 내보내기는 사용자가 실행 중에 항목을 변경하는 경우 완벽하게 일관된 순간을 포착한다고 가정해서는 안 됩니다. 일관성이 중요한 경우에는 활동이 적은 시간대를 예약하십시오.

개별 사서함 내보내기

1. 계정과 해당 메일 호스트를 확인합니다.

관리자 권한이 있는 운영 체제 계정으로 Zimbra 서버에 연결합니다. Zimbra 서비스 사용자로 전환한 다음 대상 계정이 존재하는지 확인합니다. 여러 서버로 구성된 환경에서는 올바른 사서함 서비스에 연결하고 있는지 확인하십시오.

sudo -iu zimbra
zmcontrol -v
zmprov ga user@example.com zimbraMailHost zimbraAccountStatus
zmmailbox -z -m user@example.com getAllFolders

user@example.com실제 계정 정보로 바꿔야 합니다 . 이 -z스위치는 로컬 Zimbra 관리자 자격 증명을 사용하며, 최종 사용자의 암호가 아닙니다. 필요한 관리자 권한이 없는 경우, 셸 명령에 암호를 직접 입력하는 대신 승인된 계정 액세스 워크플로를 사용하십시오.

터미널 화면에 사서함 호스트와 활성 상태를 포함한 Zimbra 계정 조회 결과가 표시됩니다.
내보내기를 시작하기 전에 사서함 주소, 호스팅 서버 및 계정 상태를 확인하십시오.

2. 비공개 아카이브 위치 생성

OS 관리자 권한으로 Zimbra 서비스 사용자가 쓰기 가능한 위치를 생성하십시오. 이 작업은 공용 디렉터리 외부에서 수행하고 먼저 여유 공간을 확인하십시오. 설치 명령을 실행한 후 관리자 계정으로 전환 zimbra하거나 관리자 계정으로 돌아가십시오.

sudo install -d -o zimbra -g zimbra -m 0700 /srv/zimbra-mailbox-backups
df -h /srv/zimbra-mailbox-backups
ls -ld /srv/zimbra-mailbox-backups

메일 보관함에는 기밀 메시지와 첨부 파일이 포함될 수 있습니다. 파일 시스템 접근을 제한하고, 서버 외부에 저장된 사본을 보호하며, 적절한 보존 정책을 적용하십시오.

터미널 화면에 개인 사서함 백업 디렉터리와 유닉스 권한 목록이 표시됩니다.
개인 백업 디렉터리를 사용하고 파일 시스템 권한을 확인하십시오.

3. 사서함을 TGZ 형식으로 내보냅니다.

셸 에서 zimbra아래 REST 익스포터를 사용하십시오. 이 -t 0옵션은 대규모 작업에 대한 CLI 시간 초과를 비활성화하지만, 프록시, 디스크 I/O 또는 서버 제한으로 인해 내보내기가 중단될 수 있음을 보장하지는 않습니다.

umask 077
zmmailbox -z -m user@example.com -t 0 getRestURL '//?fmt=tgz' > /srv/zimbra-mailbox-backups/user-20261010.tgz

계정별로 한 번씩 내보내기를 실행하고 날짜가 포함된 고유한 파일 이름을 선택하십시오. 셸 리디렉션으로 인해 이전 아카이브 경로가 잘릴 수 있으므로 재사용하지 마십시오. 명령 실행 중 오류가 발생하면 아래 검사를 통과할 때까지 결과 파일을 불완전한 것으로 간주하십시오.

터미널 화면에 zmmailbox의 getRestURL 메서드가 메일함을 TGZ 파일로 내보내는 과정이 표시됩니다.
getRestURL 명령은 압축된 사서함 아카이브를 선택한 디렉터리에 저장합니다.

4. 아카이브의 유효성을 검사하고 체크섬을 기록합니다.

비어 있지 않은 TGZ 파일이 있다고 해서 백업 복구가 가능하다는 증거는 아닙니다. 전체 tar 스트림을 검사하고, 대표적인 폴더 항목을 확인하고, 다이제스트를 계산하십시오. tar 검사에 실패했다면 파일을 가져오기보다는 내보내기 과정을 조사해야 합니다.

test -s /srv/zimbra-mailbox-backups/user-20261010.tgz
tar -tzf /srv/zimbra-mailbox-backups/user-20261010.tgz > /dev/null
tar -tzf /srv/zimbra-mailbox-backups/user-20261010.tgz | head -n 20
cd /srv/zimbra-mailbox-backups
sha256sum user-20261010.tgz > user-20261010.tgz.sha256

체크섬을 아카이브 파일과 함께 저장하고 두 파일을 원래 서버 외부의 안전한 저장소로 이동합니다. 복사 후 sha256sum -c user-20261010.tgz.sha256두 파일이 있는 디렉터리에서 명령을 실행합니다. 체크섬 검사가 성공하면 바이트 무결성이 확인되는 것이며, 모든 사서함 기능이 올바르게 복원된다는 의미는 아닙니다.

터미널에 아카이브 존재 여부, gzip 무결성 및 사서함 폴더 목록이 표시됩니다.
내보내기 파일을 사용 가능한 복구 사본으로 처리하기 전에 아카이브를 검사하십시오.
사서함 TGZ 파일의 SHA-256 체크섬을 보여주는 터미널 화면
전송된 아카이브의 변경 사항을 확인할 수 있도록 SHA-256 다이제스트를 기록합니다.

기존 메일을 덮어쓰지 않고 아카이브를 복원합니다.

5. 수신 사서함을 준비하고 점검하십시오.

대상 계정이 없는 경우, 승인된 Zimbra 프로비저닝 프로세스를 통해 생성하십시오. TGZ 가져오기 과정에서는 계정이 생성되지 않습니다. 계정 주소, 할당량, 서비스 액세스 권한 및 기존 폴더를 확인하십시오. 특히 버전 간 전송의 경우, 첫 테스트에는 격리된 비프로덕션 계정을 사용하는 것이 좋습니다.

sudo -iu zimbra
zmprov ga user@example.com zimbraMailHost zimbraAccountStatus
zmmailbox -z -m user@example.com getAllFolders

검증된 아카이브를 대상 Zimbra 서비스 사용자가 읽을 수 있는 디렉터리에 복사하되, 제한된 권한은 유지하십시오. 원격 전송의 경우, 대상에서 체크섬을 다시 확인하십시오. 동일한 주소를 가진 계정이 비어 있다고 가정하지 마십시오.

Zimbra 프로비저닝 명령에서 계정 속성을 보여주는 터미널 화면
사서함 항목을 가져오기 전에 대상 계정이 존재하는지 확인하십시오.

6. 목적지에 맞는 분쟁 해결 정책을 적용하여 수입하십시오.

일치하는 항목은 그대로 두고 누락된 항목을 추가하려면 를 사용하십시오 resolve=skip. 이는 문서화된 기본 중복 처리 동작이지만 모든 항목 유형이나 버전에 대해 완벽한 병합을 보장하는 것은 아닙니다.

zmmailbox -z -m user@example.com -t 0 postRestURL '//?fmt=tgz&resolve=skip' /srv/zimbra-mailbox-backups/user-20261010.tgz

파괴적인 예제를 프로덕션 환경에 복사하지 마십시오. Zimbra 문서에서는 resolve=reset가져오기 전에 대상 항목을 삭제하는 방법을 설명합니다. 또한 replace정책 modify에 따라 기존 항목의 처리 방식이 변경될 수 있습니다. 정확한 계정 및 폴더 범위에 대한 테스트를 거쳐 승인을 받은 후에만 제어된 복원을 고려하십시오.

터미널에 resolve=skip 옵션이 포함된 zmmailbox postRestURL이 표시됩니다.
기존 사서함 콘텐츠를 보존해야 하는 경우 충돌 건너뛰기 정책을 사용하여 아카이브를 가져옵니다.

내보내기 실패를 처리하고 복구를 확인합니다.

타임아웃 오류가 발생하면 -t 0서버 또는 프록시 타임아웃 및 저장 용량 제한을 확인하고 점검하십시오. CLI 타임아웃 값이 0이라고 해서 모든 네트워크 문제가 해결되는 것은 아닙니다. Zimbra 지원 위키에서도 대용량 사서함 내보내기 시 아카이브 손상 및 I/O 오류가 발생할 수 있다고 경고합니다. 크기가 너무 크거나 내보내기가 불안정한 경우, 작업을 폴더 또는 날짜별로 나누어 각 아카이브와 가져오기 작업을 여분의 계정에서 테스트하십시오.

예를 들어, 문서화된 검색 쿼리는 under:Inbox받은 편지함 콘텐츠와 하위 폴더를 선택합니다. REST URL을 따옴표로 묶는 것은 필수적입니다. 앰퍼샌드(&)가 셸이 아닌 Zimbra에 도달해야 하기 때문입니다.

zmmailbox -z -m user@example.com -t 0 getRestURL '//?fmt=tgz&query=under:Inbox' > /srv/zimbra-mailbox-backups/inbox-20261010.tgz

폴더 범위 아카이브는 전체 사서함 내보내기를 대체할 수 없습니다 . 아카이브 내용을 별도로 확인하고 누락된 폴더 또는 날짜를 기록해 두십시오. 계정이 비활성화되었거나 요청에서 권한 오류가 발생하는 경우, TLS 인증서 검사를 우회하거나 자격 증명을 노출하는 대신 계정 상태 및 관리자 인증을 확인하십시오.

7. 명령 종료뿐만 아니라 복원된 항목도 확인하십시오.

대상 폴더 목록을 작성하고 기록된 소스 폴더 및 TGZ 인벤토리와 비교하십시오.

zmmailbox -z -m user@example.com getAllFolders
zmmailbox -z -m user@example.com getMailboxSize

그런 다음 대상 테스트 계정에 로그인하여 수신 및 발신 메시지, 첨부 파일, 연락처, 캘린더 이벤트 샘플을 엽니다. 날짜와 폴더 경로를 확인하고 가져오기 오류가 있는지 검토합니다. 필요한 경우 별칭, 공유 권한, 규칙 및 기타 계정 수준 설정을 별도로 다시 만들거나 확인합니다. 예상되는 데이터에 액세스할 수 있고 확인 사항이 기록된 후에만 복구가 성공한 것으로 간주합니다.

터미널 화면에 getAllFolders 함수가 반환하는 Zimbra 폴더 이름이 표시됩니다.
복원된 받은 편지함, 보낸 편지함, 일정 및 기타 폴더를 예상되는 보관함 내용과 비교하십시오.

주요 참조 자료: Zimbra zmmailbox 명령어 참조 , Zimbra REST API 참조 , Zimbra zmprov 관리 참조 , 그리고 스코프 내보내기 및 대용량 아카이브 주의 사항에 대한 Zimbra 문서 . 일부 Zimbra 위키 예제는 오래되었거나 개발 중인 것으로 표시되어 있으므로, 프로덕션 환경에서 사용하기 전에 설치된 CE 빌드에서 해당 예제의 동작을 확인하십시오.

댓글 남기기

Debian 12에서 WireGuard Point-to-Site VPN을 구성하는 방법

Debian 12에서 WireGuard Point-to-Site VPN을 구성하는 방법

원격 클라이언트 한 명을 위해 Debian 12 기반 WireGuard VPN 서버를 설정합니다. 키, IPv4 포워딩, nftables NAT, 방화벽 액세스 및 연결 확인을 구성합니다.

Restic과 Cron을 사용하여 Nextcloud 백업을 일관되게 자동화하세요

Restic과 Cron을 사용하여 Nextcloud 백업을 일관되게 자동화하세요

Nextcloud 파일과 MariaDB를 함께 백업하고, cron을 사용하여 암호화된 Restic 스냅샷을 예약하고, 운영 서버에 위험을 초래하지 않고 복구를 검증하세요.

데비안에서 부팅 시 원격 SSHFS 디렉터리를 자동으로 마운트하는 방법

데비안에서 부팅 시 원격 SSHFS 디렉터리를 자동으로 마운트하는 방법

데비안에서 SSH 키, fstab, systemd 자동 마운트를 사용하여 SSHFS 부팅 마운트를 구성하는 방법입니다. 재부팅 확인, 권한 설정, 타임아웃 및 문제 해결 기능도 포함되어 있습니다.

TGZ 내보내기를 사용하여 Zimbra CE 사서함을 백업 및 복원하는 방법

TGZ 내보내기를 사용하여 Zimbra CE 사서함을 백업 및 복원하는 방법

Zimbra Community Edition 개별 사서함을 내보내고, TGZ 백업의 유효성을 검사하고, 기존 메일을 덮어쓰지 않고 누락된 항목을 복원할 수 있습니다.

승인된 사용자가 Keycloak 로그인을 통해 Jitsi 룸을 생성할 수 있도록 허용

승인된 사용자가 Keycloak 로그인을 통해 Jitsi 룸을 생성할 수 있도록 허용

Keycloak 및 토큰 인증을 사용하여 승인된 계정만 Jitsi Meet 회의실을 시작할 수 있도록 허용하고, 필요한 경우 게스트 참여도 허용합니다.

LDAP를 통해 Active Directory 사용자를 ONLYOFFICE DocSpace와 동기화하세요.

LDAP를 통해 Active Directory 사용자를 ONLYOFFICE DocSpace와 동기화하세요.

ONLYOFFICE DocSpace를 Active Directory 또는 OpenLDAP에 연결하고, 사용자 및 그룹을 안전하게 가져오고, 계정 필드를 매핑하고, 안정적인 동기화를 예약하세요.

ONLYOFFICE 문서 서버에 글꼴 추가하기: Docker vs Linux

ONLYOFFICE 문서 서버에 글꼴 추가하기: Docker vs Linux

ONLYOFFICE Document Server에 사용자 지정 글꼴을 설치하고, Docker 마운트된 글꼴과 직접 복사된 글꼴을 비교하고, 글꼴 목록을 다시 빌드하고, 결과를 확인합니다.

편집 기능을 유지하면서 ONLYOFFICE 문서를 HAProxy 뒤에 배치하는 방법

편집 기능을 유지하면서 ONLYOFFICE 문서를 HAProxy 뒤에 배치하는 방법

ONLYOFFICE Docs에 대해 HAProxy HTTPS, 전달 헤더, WebSocket 시간 초과 및 상태 확인을 구성한 다음 편집 및 저장이 제대로 되는지 확인합니다.

SLES 15 보안 부팅에 사용자 지정 커널 모듈 설치 및 서명

SLES 15 보안 부팅에 사용자 지정 커널 모듈 설치 및 서명

보안 부팅을 비활성화하지 않고 사용자 지정 SLES 15 커널 모듈을 로드합니다. 실행 중인 커널과 일치시키고, .ko 파일에 서명하고, MOK 키를 등록하고, 로드 여부를 확인합니다.

rsyslog 및 상호 TLS를 사용한 안전한 SLES Syslog 포워딩

rsyslog 및 상호 TLS를 사용한 안전한 SLES Syslog 포워딩

SLES 시스템 로그를 인증된 TLS를 통해 원격 rsyslog 수집기로 전송하고, 인증서 확인, 장애 버퍼링 및 전송 테스트를 수행합니다.