Делать бэкапы будем скриптом с ручным запуском, который я нашел тут. Скрипт создаст список всех ящиков Zimbra для домена, заархивирует их по очереди и отправит архивы на FTP-сервер для хранения (на почтовом сервере мало места), с уведомлением админа письмом. FTP-сервер у меня с анонимным доступом. Логи будут лежать в /var/backups/mailbackup/
Содержимое скрипта:
Сделать скрипт исполняемым
Запуск скрипта
Понятное дело, что можно добавить задание в cron и выполнять скрипт по расписанию, например 30 числа каждого месяца в 9 вечера.
Восстановление писем в ящике (аккаунт пользователя должен существовать в Zimbra)
1 вариант:
2 вариант: Zimbra (войти в учетку пользователя) - Настройки - Импорт и экспорт - в Импорте нажать Обзор и выбрать нужный архив.
sudo apt update && apt upgrade
sudo apt install lftp - установка ftp-клиента
nano ~/backup.sh
Содержимое скрипта:
#!/bin/bash
clear
#храним бэкапы за последние 30 дней
/usr/bin/find /opt/backup/* -type d -mtime +30 -exec /bin/rm -rf {} \;
## формат в котором находятся бекапы всех резервных ящиков
FORMAT=tgz
## месторасположение каталого резервных копий
ZBACKUP=/opt/backup
## Folder name for backup and using date
DATE=`date +"%d%m%y"`
## Backup location separate by date
ZDUMPDIR=$ZBACKUP/$DATE
## zmmailbox location
ZMBOX=/opt/zimbra/bin/zmmailbox
# проверка существования каталога с текущей датой, если нет то создаем
if [ ! -d $ZDUMPDIR ]; then
mkdir -p $ZDUMPDIR
fi
## Список ящиков для MAIL-DOMAIN.RU (если не указывать имя домена - будут бэкапиться все существующие аккаунты)
echo "Создаю список ящиков в домене mail-domain.ru"
for account in `su - zimbra -c 'zmprov -l gaa MAIL-DOMAIN.RU | sort'`
do
# создание резервной копии всех почтовый ящиков
echo "Архивирую $account -" `date +%F--%H:%M` >> /var/backups/mailbackup/`date +%F`".log"
echo "Архивирую $account -" `date +%F--%H:%M`
$ZMBOX -z -m $account getRestURL "//?fmt=${FORMAT}$query" > $ZDUMPDIR/$account.${FORMAT}
echo "Отправка архива $account на FTP" >> /var/backups/mailbackup/`date +%F`".log"
echo "Отправка архива $account на FTP"
lftp -e "put $ZDUMPDIR/$account.${FORMAT}; exit" MY-FTP-SERVER.RU
echo "Отправка уведомления администратору" >> /var/backups/mailbackup/`date +%F`".log"
echo "Отправка уведомления администратору"
(echo "Subject:Zimbra Backup Report"; echo "Бэкап $account успешно завершен.") | /opt/zimbra/common/sbin/sendmail admin@MAIL-DOMAIN.RU
echo "<-----Завершено------>" >> /var/backups/mailbackup/`date +%F`".log"
echo "<-----Завершено------>"
done
Сделать скрипт исполняемым
sudo chmod a+x ~/backup.sh
Запуск скрипта
sudo ./backup.sh
Понятное дело, что можно добавить задание в cron и выполнять скрипт по расписанию, например 30 числа каждого месяца в 9 вечера.
crontab -e
0 21 30 * * sh ~/backup.sh
Восстановление писем в ящике (аккаунт пользователя должен существовать в Zimbra)
1 вариант:
zmmailbox -z -m ящик@MY-DOMAIN.RU -t 0 postRestURL "//?fmt=tgz&resolve=reset" /opt/backup/ящик@MY-DOMAIN.RU.tgz
2 вариант: Zimbra (войти в учетку пользователя) - Настройки - Импорт и экспорт - в Импорте нажать Обзор и выбрать нужный архив.
0 коммент.:
Отправить комментарий