SCROLL

Посты с тэгом: mailbox

Рассмотрим как делать резервную копию баз данных MS Exchange Server 2010, используя оснастку Windows Server Backup в Windows Server 2012 R2.

 

Резервное копирование выполняется с помощью VSS (Volume Shadow Copy Service), с условием полной архивацией указанного тома. Только с этими условиями, сделанная резервная копия будет считаться корректной, в базы данных будет записана информация о времени выполнении резервной копии, а так же удалятся логи транзакций журналов Exchange.

 

Если оснастка Windows Server Backup не добавлена в систему, добавляем ее с помощью мастера добавления ролей и компонентов:

В этой статье я рассматривал как выполнить единичный запрос на экспорт почтового ящика посредством Exchange Managment Shell. Сейчас же появилась необходимость в инструменте, для массового экспорта указанных почтовых ящиков в автоматическом режиме.

 

Решать данную задачу будем с помощью скрипта для Powershell. Задача скрипта:

  • Возможность выполнять одиночный экспорт указанного почтового ящика
  • Возможность выполнять массовый экспорт, указанных почтовых ящиков

 

[stextbox id=’warning’]По-умолчанию в PowerShell включена максимальная политика безопасности, которая позволяет выполнять команды PowerShell в командной строке, но не позволяет в той же командной строке выполнить скрипт с командами PowerShell. Разрешить выполнение скриптов в Powershell:

powershell -Command Set-ExecutionPolicy RemoteSigned[/stextbox]

Ниже представлен листинг получившегося у меня скрипта. Скрипт с комментариями, разобраться в нем не должно составить труда:

Получение информации о размере почтового ящика, можно получить как в графической оснастке Exchange Managment Console, так и через консольную оснастку Exchange Management Shell.

В этой статье мы разбирали как развернуть Zimbra Collaboration 8.6 на Ubuntu 14.04 Trusty Tahr. В бесплатной версии почтового сервера нет удобного функционала по бекапу и восстановлению почтовых ящиков. А создание бекапов, есть неотъемлемая часть работы любого системного администратора. Да и наличие бекапа всегда нас спасет в трудную минуту.

 

Создавать бекапы и восстанавливать их же будем посредством bash-скриптов. Создавать и восстанавливать почтовые ящики мы будем на горячую так сказать, без остановки почтового сервера.

 

 

Резервное копирование всех почтовых ящиков

Создаем текстовый файл и делаем его исполняемым:

nano backup_all_mailbox.sh
sudo chmod +x backup_all_mailbox.sh

 

В созданный скрипт вписываем следующее (в параметрах настроек скрипта указываем данные свои):

#!/bin/bash

#####################
# Настройки скрипта #
#####################
# Путь к месту бекапа
Path_backup="/home/jakonda/bkzm"
# Временный файл для работы
Source_list="/home/jakonda/temp"
# Название домена
Domain="jakondo.ru"
# Значение текущей даты
Current_date=$(date +%d-%m-%Y)
# Лог-файл
Log=$Path_backup"/"$Current_date"/log"
echo "#####################################################"
echo "# Резервное копирование всех почтовых ящиков Zimbra #"
echo "#####################################################"
echo ""
echo "Время начала бекапа всех почтовых ящиков - $(date +%T)"
echo "Начало бекапа - $(date +%T)" > $Log
# Запоминаем время начала бекапа
Begin_time=$(date +%s)
echo ""
# Определяем список всех имеющихся почтовых ящиков
echo "Формируем список всех почтовых ящиков для бекапа..."
/opt/zimbra/bin/zmprov -l gaa $Domain > $Source_list
if [ $? -eq 0 ]; then
echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]"
echo "Формирование списка почтовых ящиков успешно выполнено." >> $Log
echo
else
echo -n "$(tput hpa $(tput cols))$(tput cub 6)[FAIL]"
echo "Формирование списка почтовых ящиков не удалось выполнить. Завершение работы (Неудача)." >> $Log
exit
echo
fi
# Проходимся по всем ящикам в полученном списке и делаем бекап каждого
echo "Выполняем резервное копирование всех почтовых ящиков"
echo "----------------------------------------------------"
mkdir -p $Path_backup/$Current_date/
echo "Создание каталога $Current_date для размешения бекапа." >> $Log
for mailbox in $( cat $Source_list); do
echo "Резервирование почтового ящика - $mailbox"
/opt/zimbra/bin/zmmailbox -z -m $mailbox getRestUrl "//?fmt=tgz" > $Path_backup/$Current_date/$mailbox.tgz
if [ $? -eq 0 ]; then
echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]"
echo "Бекап почтового ящика $mailbox успешен" >> $Log
echo
else
echo -n "$(tput hpa $(tput cols))$(tput cub 6)[FAIL]"
echo "Бекап почтового ящика $mailbox не удачно" >> $Log
echo
fi
done
# Вычисление времени работы бекапа почтовых ящиков
End_time=$(date +%s)
Elapsed_time=$(expr $End_time - $Begin_time)
Hours=$(($Elapsed_time / 3600))
Elapsed_time=$(($Elapsed_time - $Hours * 3600))
Minutes=$(($Elapsed_time / 60))
Seconds=$(($Elapsed_time - $Minutes * 60))
echo "Затрачено времени на резервное копирование : $Hours час $Minutes минут $Seconds секунд"
echo "Затрачено времени на резервное копирование : $Hours час $Minutes минут $Seconds секунд" >> $Log