image 119
Hướng dẫn Backup và Restore Mail trên Zimbra 10

Trong môi trường công việc hiện đại, email đã trở thành phương tiện truyền thông chính thức và không thể thiếu trong giao tiếp hàng ngày của chúng ta. Với số lượng thông điệp quan trọng và dữ liệu quan trọng được gửi và nhận thông qua email, việc sao lưu và khôi phục các hòm thư trở nên cực kỳ quan trọng.

Zimbra, một hệ thống quản lý email phổ biến và mạnh mẽ, cung cấp các công cụ giúp bạn sao lưu và khôi phục email một cách dễ dàng. Trong bài viết này, chúng ta sẽ hướng dẫn cách thực hiện sao lưu và khôi phục hòm thư trên Zimbra.

Bài viết sẽ bao gồm các bước cơ bản để sao lưu và khôi phục email, cùng với một số lưu ý quan trọng để đảm bảo quá trình này diễn ra một cách an toàn và hiệu quả. Bạn sẽ tìm hiểu về cách sao lưu dữ liệu email hiện tại của mình, lưu trữ sao lưu một cách an toàn và tiến hành khôi phục lại các thông điệp khi cần thiết.

Bên cạnh đó, chúng ta sẽ cung cấp một số khuyến nghị về thời gian và tần suất sao lưu email, cũng như lưu ý về việc lựa chọn nơi lưu trữ sao lưu. Điều này giúp đảm bảo rằng dữ liệu của bạn sẽ được bảo vệ và dễ dàng khôi phục trong trường hợp xảy ra sự cố.

Dù bạn là một người dùng Zimbra mới hay đã quen thuộc với nền tảng này, bài viết sẽ giúp bạn nắm vững quy trình backup và restore mail trên Zimbra. Bằng cách làm theo các hướng dẫn và tuân thủ các lưu ý, bạn có thể an tâm về việc bảo vệ dữ liệu email của mình và khôi phục chúng một cách dễ dàng khi cần thiết.

Hãy cùng tôi khám phá quá trình backup và restore mail trên Zimbra để đảm bảo an toàn cho dữ liệu email quan trọng của bạn.

1. SSH vào server mail

Trong bài viết này tôi sẽ hướng dẫn thực hiện backup và restore thông qua dòng lệnh, nên bạn cần SSH vào máy chủ mail. Nếu bạn chưa biết cách SSH hãy xem qua hướng dẫn tại đây

2. Hướng dẫn Backup Mail trên Zimbra (Sao lưu)

Lưu ý: Các lệnh được chạy dưới quyền user zimbra do đó bạn cần su vào user để thực hiện

Để sao lưu email trong Zimbra bằng lệnh, bạn có thể sử dụng lệnh zmmailbox trong giao diện dòng lệnh. Dưới đây là các bước cơ bản để thực hiện



NGUYENCANHSON.COM
su - zimbra
   

2.1 Sao lưu một mail cụ thể

  • Cú pháp thực hiện

Thay [email protected] bằng địa chỉ email của người dùng bạn muốn sao lưu và bằng đường dẫn tới nơi bạn muốn lưu tệp tin sao lưu.



NGUYENCANHSON.COM
zmmailbox -z -m  getRestURL "/?fmt=tgz" >     
  • Ví dụ thực tế


NGUYENCANHSON.COM
zmmailbox -z -m [email protected] getRestURL "/?fmt=tgz" > /opt/zimbra/backup/backup.tgz
    

2.2 Sao lưu tất cả mail trên Zimbra

Nếu bạn muốn sao lưu email của toàn bộ người dùng trên Zimbra, bạn có thể sử dụng lệnh sau:

  • Cú pháp thực hiện

Lệnh trên sẽ tạo ra một tệp tin sao lưu riêng cho mỗi tài khoản người dùng.

Lưu ý rằng quá trình sao lưu có thể mất thời gian tùy thuộc vào số lượng email và kích thước hộp thư.



NGUYENCANHSON.COM
zmprov -l gaa | while read -r account; do zmmailbox -z -m "$account" getRestURL "/?fmt=tgz" > ""; done
    
  • Ví dụ thực tế

Trong ví dụ này sẽ sao lưu tất cả mail với định dạng nén .tgz và lưu trong thư mục /opt/zimbra/backup/



NGUYENCANHSON.COM
zmprov -l gaa | while read -r account; do zmmailbox -z -m "$account" getRestURL "/?fmt=tgz" > "/opt/zimbra/backup/backup-$account.tgz"; done
    
image 117
Hướng dẫn Backup và Restore Mail trên Zimbra 11
image 118
Hướng dẫn Backup và Restore Mail trên Zimbra 12

3. Hướng dẫn Restore Mail trên Zimbra (Khôi phục)

Để khôi phục (restore) email trong Zimbra bằng lệnh, bạn có thể sử dụng lệnh zmmailbox trong giao diện dòng lệnh. Dưới đây là các bước cơ bản để khôi phục email:

3.1 Restore một mail cụ thể

  • Cú pháp thực hiện

Thay [email protected] bằng địa chỉ email của người dùng bạn muốn khôi phục và bằng đường dẫn tới tệp tin sao lưu.



NGUYENCANHSON.COM
zmmailbox -z -m  postRestURL "/?fmt=tgz&resolve=reset" ""
    
image 120
Hướng dẫn Backup và Restore Mail trên Zimbra 13

3.2 Restore nhiều mail

Nếu bạn muốn khôi phục email cho nhiều người dùng, bạn có thể sử dụng một vòng lặp và lệnh sau:

Lệnh trên sẽ đọc danh sách các tài khoản người dùng từ lệnh zmprov -l gaa và khôi phục email từ tệp tin sao lưu tương ứng.

Lưu ý rằng quá trình khôi phục có thể mất thời gian tùy thuộc vào kích thước và số lượng email trong tệp tin sao lưu.



NGUYENCANHSON.COM
while read -r account; do zmmailbox -z -m "$account" postRestURL "/?fmt=tgz&resolve=reset" ""; done 

4. Script tự động Backup

Để tiện cho việc sao lưu tự động theo lịch được set. MÌnh đã viêt sẵn một script sau để làm việc này. Với script này sẽ sao lưu và lưu giữ 7 bản trên máy chủ.

  • Tạo thư mục lưu dữ liệu và log

Ở đây tôi sẽ tạo lần lượt các thư mục lưu trữ backup và lưu lại log để thuận tiện cho việc theo dõi.



NGUYENCANHSON.COM
mkdir -p /opt/zimbra/backup-zimbra
mkdir -p /opt/zimbra/backup-zimbra/backup
mkdir -p /opt/zimbra/backup-zimbra/logs
touch /opt/zimbra/backup-zimbra/logs/zm.log
touch /opt/zimbra/backup-zimbra/logs/user.log
touch /opt/zimbra/backup-zimbra/logs/cron.log
    
  • Tạo script

Bước này tôi sẽ tạo file auto-backup.sh với các đoạn script sau.



NGUYENCANHSON.COM
nano /opt/zimbra/backup-zimbra/auto-backup.sh
    

Sau đó nhập nội dung script vào. Script này sẽ lưu trữ 3 bản liên tục bản thứ 4 sẽ được xoá bỏ.



NGUYENCANHSON.COM

#!/bin/bash
#Author: NGUYENCANHSON.COM

# Đường dẫn lưu backup
backup_dir="/opt/zimbra/backup-zimbra/backup"

# Định dạng ngày-tháng-năm
date_format=$(date +'%d-%m-%Y')

# Tạo thư mục backup mới
new_backup_dir="$backup_dir/$date_format"
mkdir -p "$new_backup_dir"

# Tên file log
log_file="/opt/zimbra/backup-zimbra/logs/zm.log"
user_log_file="/opt/zimbra/backup-zimbra/logs/user.log"

# Backup danh sách tài khoản
echo "$(date): Starting backup" >> "$log_file"

/opt/zimbra/bin/zmprov -l gaa | while read -r account; do
    backup_file="$new_backup_dir/backup-$account.tgz"

    /opt/zimbra/bin/zmmailbox -z -m "$account" getRestURL "/?fmt=tgz" > "$backup_file"

    if [ -f "$backup_file" ]; then
        echo "$(date): Backup successful for user $account" >> "$user_log_file"
    else
        echo "$(date): Backup failed for user $account" >> "$user_log_file"
    fi
done

# Số lượng thư mục backup hiện tại
backup_count=$(ls -l "$backup_dir" | grep '^d' | wc -l)

# Xóa thư mục backup cũ nếu số lượng vượt quá 3
if [ "$backup_count" -gt 3 ]; then
    oldest_backup=$(ls -t "$backup_dir" | tail -1)
    rm -rf "$backup_dir/$oldest_backup"
fi

echo "$(date): Backup completed" >> "$log_file"

    
  • Phân quyền file và thư mục


NGUYENCANHSON.COM
chown -R zimbra:zimbra /opt/zimbra/backup-zimbra/
    

5. Tạo cron backup tự động

Script này tôi sẽ chạy dưới quyền user zimbra do đó bạn cần su - zimbra và đặt cron



NGUYENCANHSON.COM
su - zimbra
crontab -e
    

Sau đó nhập vào đoạn cron này. Cron này sẽ chạy vào 18h 0 phút hằng ngày



NGUYENCANHSON.COM
0 18 * * * /opt/zimbra/backup-zimbra/auto-backup.sh >> /opt/zimbra/backup-zimbra/logs/cron.log2>&1