Hướng dẫn backup mail zimbra
Show
Việc cập nhật bản vá lỗi cho các phiên bản zimbra cũ có thể gây lỗi khó khắc phục và gây gián đoạn dịch vụ. Server mail cũ : cài đặt zimbra 8.6.0 Contents
1. Thao tác trên server cũĐể thao tác không bị ngắt quãng do mất mạng, bạn nên thực hiện trong chế độ “screen” 1.2 Tạo thư mục chứa dữ liệu backup# mkdir /migration # mkdir -p /migration/zimbra # chmod 777 /migration # chmod 777 /migration/zimbra # chown zimbra:zimbra /migration # chown zimbra:zimbra /migration/zimbra1.2 Xuất toàn bộ tên miền hiện có trên server mail cũ# su - zimbra # cd /migration/zimbra # mkdir domains # cd domains # zmprov gad | tee -a domains.txt (Xuất toàn bộ tên miền và lưu vào domains.txt)1.3 Xuất toàn bộ tài khoản mail# cd /migration/zimbra # mkdir accounts # cd accounts # zmprov gaaa | tee -a admins.txt ##Xuất tài khoản quản trị và lưu vào admins.txtXuất toàn bộ user thường và lưu vào users.txt zmprov -l gaa | tee -a users.txt###Nếu chỉ xuất user active thì dùng lệnh bên dưới: 1.4 Xuất thông tin user# cd /migration/zimbra # mkdir account_details # cd account_details # for user in `cat ../accounts/users.txt`; do zmprov ga $user | grep -i Name: | tee -a $user.txt ; doneNếu câu lệnh trên không hoạt động đúng, bạn sẽ cần gõ thủ công bằng tay Bạn sẽ thấy màn hình xuất ra font chữ bị lỗi ( nếu là tiếng việt có dấu), tuy nhiên không cần bận tâm . 1.5 Xuất mật khẩu user# cd /migration/zimbra # mkdir passwords # cd passwords # for user in `cat ../accounts/users.txt`; do zmprov -l ga $user userPassword | grep userPassword: | awk '{ print $2}' | tee -a $user.shadow; done1.6 Xuất distribution lists# cd /migration/zimbra # mkdir distribution_lists # cd distribution_lists # zmprov gadl | tee -a distribution_lists.txt # for list in `cat distribution_lists.txt`; do zmprov gdlm $list > $list.txt ;echo "$list"; done1.7 Xuất aliases# cd /migration/zimbra # mkdir aliases # cd aliases # for user in `cat ../accounts/users.txt`; do zmprov ga $user | grep zimbraMailAlias | awk '{print $2}' | tee -a $user.txt ;echo $i ;done# find . -type f -empty | xargs -n1 rm -v (do không phải user nào cũng có aliase , vì vậy sẽ cần xoá các file .txt không chứa dữ liệu )2. Thao tác trên server mới( Đảm bảo rẳng bạn đã rsync toàn bộ các thư mục dữ liệu vừa xuất trên server cũ sang) Để thao tác không bị ngắt quãng do mất mạng, bạn nên thực hiện trong chế độ “screen” 2.1 Restore domainLưu ý : nếu trên máy chủ mới, bạn đã tạo domain thì có thể bỏ qua bước này # su zimbra# cd /migration/zimbra/domains # for domain in `cat domains.txt `; do zmprov cd $domain zimbraAuthMech zimbra ;echo $domain ;done2.2 Restore user & passwordsu zimbra# cd /migration/zimbra # mkdir scripts # cd scripts # vim restore_accounts.sh ##tạo scriptNội dung script : #!/bin/bash PASSWDS="../passwords" ACCOUNT_DETAILS="../account_details" USERS="../accounts/users.txt" for i in `cat $USERS` do export LC_ALL=vi_VN.utf8 ##Giúp import ký tự Tiếng Việt không bị lỗi font givenName=$(grep givenName: $ACCOUNT_DETAILS/$i.txt | cut -d ":" -f2) displayName=$(grep displayName: $ACCOUNT_DETAILS/$i.txt | cut -d ":" -f2) shadowpass=$(cat $PASSWDS/$i.shadow) zmprov ca $i "TeMpPa55^()" cn "$givenName" displayName "$displayName" givenName "$givenName" zmprov ma $i userPassword "$shadowpass" donePhân quyền và thực thi script : # chmod 777 restore_accounts.sh # ./restore_accounts.shLưu ý :Sau khi restore mật khẩu [email protected] , sẽ là mật khẩu ở máy chủ cũ. 2.3 Restore distribution lists# cd /migration/zimbra # for lists in `cat distribution_lists/distribution_lists.txt`; do zmprov cdl distribution_lists/$lists ; echo "$lists -- done " ; done# cd /migration/zimbra/distribution_lists # vim restore_dist_lists.sh ##tạo scriptNội dung script : #!/bin/bash for list in `cat distribution_lists.txt` do for mbmr in `grep -v '#' ./$list.txt | grep '@'` do zmprov adlm $list $mbmr echo " $mbmr has been added to $list" done donePhân quyền và thực thi: # chmod 777 restore_dist_lists.sh # ./restore_dist_lists.sh2.4 Restore aliases# cd /migration/zimbra/aliases # vim restore_aliases.sh ##tạo scriptNội dung script : #!/bin/bash echo "Processing User accounts" for user in `cat ../accounts/users.txt` do echo $user if [ -f "./$user.txt" ]; then for alias in `grep '@' ./$user.txt` do zmprov aaa $user $alias echo "$user ALIAS $alias - Restored" done fi done echo "Processing Admin accounts" for user in `cat ../accounts/admins.txt` do echo $user if [ -f "./$user.txt" ]; then for alias in `grep '@' ./$user.txt` do zmprov aaa $user $alias echo "$user ALIAS $alias - Restored" done fi donePhân quyền và thực thi : # chmod 777 restore_aliases.sh # ./restore_aliases.shTiến hành khởi động lại dịch vụ : # zmcontrol restartTới đây , bạn có thể trỏ lại DNS , cấu hình DKIM…. sang IP của server mới 3. Migrating mailbox dataBước này sẽ mất khá nhiều thời gian tuỳ thuộc vào dữ liệu email của bạn 3.1 Tại máy chủ mail cũ3.1.1 Xuất dữ liệu hòm thư người dùng:# su - zimbra # cd /migration/zimbra # mkdir mailbox_data # cd mailbox_data # for user in `cat ../accounts/users.txt`; do echo "Exporting mailbox $user" ; zmmailbox -z -m $user getRestURL '/?fmt=tgz' > ./$user.tgz ; done3.1.2 Xuất dữ liệu bộ lọc mail# mkdir /migration/zimbra/filters # cd /migration/zimbra/filters # vim export_filters.sh ##tạo scriptNội dung script : 3.2 Tại mảy chủ mớiĐảm bảo rằng bạn đã rsync dữ liệu mailbox_data từ máy chủ cũ sang 3.2.1 Nhập dữ liệu mailbox# su zimbra # cd /migration/zimbra/mailbox_data # for mailbox in `cat ../accounts/users.txt`; do zmmailbox -z -m $mailbox postRestURL "/?fmt=tgz&resolve=skip" ./$mailbox.tgz ; echo "$mailbox - done "; done3.2.2 Nhập dữ liệu bộ lọc# cd /migration/zimbra/filter # vim import_filters.sh ##tạo scriptNội dung script: for file in /migration/zimbra/filters/* do StrFilter=`cat "$file"` Acc=`echo $file | cut -d "/" -f5` su - zimbra -c "zmprov ma $Acc zimbraMailSieveScript '$StrFilter'" echo "Process filter $Acc" done echo "All filter has been import successfully"Phân quyền và thực thi # chmod 777 import_filters.sh # ./import_filters.sh4. Đồng bộ lại trạng thái userĐối với các tài khoản user ở trạng thái Locked , khi đồng bộ sẽ đều chuyển thành Active 4.1 Trên máy chủ cũXuất list user đang trong trạng thái Locked : # cd /migration/zimbra 4.2 Trên máy chủ mớiĐảm bảo rằng bạn đã rsync dữ liệu /migration/zimbra/account_status sang # cd /migration/zimbra/account_status # for user in $(cat user_locked.txt) ; do zmprov modifyAccount $user zimbraAccountStatus locked ; doneHoàn tất quá trình đồng bộ dữ liệu , tiến hành khởi động lại dịch vụ, sau đó kiểm tra hoạt động của server mới # su zimbra # zmcontrol restart |