Резервное копирование списка учетных записей и списков рассылки в Zimbra Collaboration 8.6
Рассмотрим как делать резервные копии списка учетных записей, а так же списков рассылки. Данный бекап может пригодится, в случае переноса почтового сервера на другую машину, да и в целом на случай непредвиденного сбоя, всегда можно будет восстановить быстро как учетные записи, так и группы рассылки.
JUQwJTk4JUQxJTgyJUQwJUIwJUQwJUJBJTIwJUQwJUJDJUQxJThCJTIwJUQwJUI4JUQwJUJDJUQwJUI1JUQwJUI1JUQwJUJDJUMyJUEwJUQxJTgwJUQwJUIwJUQwJUI3JUQwJUIyJUQwJUI1JUQxJTgwJUQwJUJEJUQxJTgzJUQxJTgyJUQxJThCJUQwJUI5JTIwJUQwJUJGJUQwJUJFJTIwJUQxJThEJUQxJTgyJUQwJUJFJUQwJUI5JUMyJUEwJUQxJTgxJUQxJTgyJUQwJUIwJUQxJTgyJUQxJThDJUQwJUI1JUMyJUEwJUQwJUJGJUQwJUJFJUQxJTg3JUQxJTgyJUQwJUJFJUQwJUIyJUQxJThCJUQwJUI5JTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJUMyJUEwWmltYnJhJTIwQ29sbGFib3JhdGlvbiUyMDguNiUyMCVEMCVCRCVEMCVCMCUyMFVidW50dSUyMDE0LjA0JTIwVHJ1c3R5JTIwVGFoci4lMjAlRDAlOTQlRDAlQkIlRDElOEYlMjAlRDElODElRDAlQkUlRDAlQjclRDAlQjQlRDAlQjAlRDAlQkQlRDAlQjglRDElOEYlMjAlRDAlQjElRDAlQjUlRDAlQkElRDAlQjAlRDAlQkYlRDAlQjAlMjAlRDAlQjQlRDAlQjAlRDAlQkQlRDAlQkQlRDElOEIlRDElODUlMjAlRDAlQkMlRDElOEIlMjAlRDAlQjElRDElODMlRDAlQjQlRDAlQjUlRDAlQkMlMjAlRDAlQjglRDElODElRDAlQkYlRDAlQkUlRDAlQkIlRDElOEMlRDAlQjclRDAlQkUlRDAlQjIlRDAlQjAlRDElODIlRDElOEMlMjBiYXNoJTIwJUQxJTgxJUQwJUJBJUQxJTgwJUQwJUI4JUQwJUJGJUQxJTgyJUQxJThCLg==
Резервное копирование списка учетных записей
Создаем текстовый файл и делаем его исполняемым:
nano backup_accounts.sh sudo chmod +x backup_accounts.sh
JUQwJTkyJTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTgxJUQwJUJBJUQxJTgwJUQwJUI4JUQwJUJGJUQxJTgyJTIwJUQwJUIyJUQwJUJGJUQwJUI4JUQxJTgxJUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQxJTgzJUQxJThFJUQxJTg5JUQwJUI1JUQwJUI1JTIwKCVEMCVCMiUyMCVEMCVCRiVEMCVCMCVEMSU4MCVEMCVCMCVEMCVCQyVEMCVCNSVEMSU4MiVEMSU4MCVEMCVCMCVEMSU4NSUyMCVEMCVCRCVEMCVCMCVEMSU4MSVEMSU4MiVEMSU4MCVEMCVCRSVEMCVCNSVEMCVCQSUyMCVEMSU4MSVEMCVCQSVEMSU4MCVEMCVCOCVEMCVCRiVEMSU4MiVEMCVCMCUyMCVEMSU4MyVEMCVCQSVEMCVCMCVEMCVCNyVEMSU4QiVEMCVCMiVEMCVCMCVEMCVCNSVEMCVCQyUyMCVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCRCVEMSU4QiVEMCVCNSUyMCVEMSU4MSVEMCVCMiVEMCVCRSVEMCVCOCklM0E=
#!/bin/bash ##################### # Настройка скрипта # ##################### # Место где хранить бекапы Path="/home/jakonda/bkzm" # Название домена Domain="jakondo.ru" # Текущая дата Current_date=$(date +%d-%m-%Y) # Временный файл для работы скрипта Temp=$Path"/temp" echo "################################################" echo "# Резервное копирование списка учетных записей #" echo "################################################" echo "" echo "Получение списка аккаунтов в домене $Domain..." # Получаем список всех аккаунтов в указанном домене /opt/zimbra/bin/zmprov -l gaa $Domain > $Temp echo "Получение подробных сведений по аккаунтам..." # Получаем развернутые данные по каждому аккаунту for account in $( cat $Temp); do # Фамилия GN=$(/opt/zimbra/bin/zmprov ga $account | grep givenName) # Имя SN=$(/opt/zimbra/bin/zmprov ga $account | grep sn) # Отчество IN=$(/opt/zimbra/bin/zmprov ga $account | grep initials) # Отображаемое полное имя DN=$(/opt/zimbra/bin/zmprov ga $account | grep displayName) # компануем полученные данные в одну строку и записываем ее в файл бекапа echo "$account <$GN><$SN><$IN><$DN>" >> $Path"/$Current_date.accounts.txt" done echo "Создание бекапа списка аккаунтов завершено" # Подчищаем после выполнения скрипта rm -f $Temp
JUQwJTkyJTIwJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI1JTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQxJTgxJUQwJUJBJUQxJTgwJUQwJUI4JUQwJUJGJUQxJTgyJUQwJUIwJTJDJTIwJUQxJTgxJUQwJUJEJUQwJUIwJUQxJTg3JUQwJUIwJUQwJUJCJUQwJUIwJTIwJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUI4JUQxJTgwJUQxJTgzJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQxJTgxJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUJFJUQwJUJBJTIwJUQwJUIyJUQxJTgxJUQwJUI1JUQxJTg1JTIwJUQwJUJGJUQwJUJFJUQxJTg3JUQxJTgyJUQwJUJFJUQwJUIyJUQxJThCJUQxJTg1JTIwJUQxJThGJUQxJTg5JUQwJUI4JUQwJUJBJUQwJUJFJUQwJUIyJTIwJUQwJUI4JUQwJUJDJUQwJUI1JUQxJThFJUQxJTg5JUQwJUI4JUQxJTg1JUQxJTgxJUQxJThGJTIwJUQwJUIyJTIwJUQxJTgzJUQwJUJBJUQwJUIwJUQwJUI3JUQwJUIwJUQwJUJEJUQwJUJEJUQwJUJFJUQwJUJDJTIwJUQwJUI0JUQwJUJFJUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI1JTJDJTIwJUQwJUI3JUQwJUIwJUQxJTgyJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQwJUJFJTIwJUQwJUJBJUQwJUIwJUQwJUI2JUQwJUI0JUQwJUJFJUQwJUJDJUQxJTgzJTIwJUQwJUJGJUQwJUJFJUQxJTg3JUQxJTgyJUQwJUJFJUQwJUIyJUQwJUJFJUQwJUJDJUQxJTgzJTIwJUQxJThGJUQxJTg5JUQwJUI4JUQwJUJBJUQxJTgzJTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUIxJUQwJUI1JUQwJUJBJUQwJUIwJUQwJUJGJTJDJTIwJUQwJUIyJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg2JUQwJUI1JTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUJCJUQwJUJFJUQwJUIzJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCLiUyMCVEMCU5RiVEMSU4MCVEMCVCOCVEMCVCQyVEMCVCNSVEMSU4MCUyMCVEMCVCMiVEMSU4QiVEMCVCMiVEMCVCRSVEMCVCNCVEMCVCMCUyMCVEMSU4MCVEMCVCMCVEMCVCMSVEMCVCRSVEMSU4MiVEMSU4QiUyMCVEMSU4MSVEMCVCQSVEMSU4MCVEMCVCOCVEMCVCRiVEMSU4MiVEMCVCMCUzQQ==
################################################ # Резервное копирование списка учетных записей # ################################################ Получение списка аккаунтов в домене jakondo.ru... Получение подробных сведений по аккаунтам... Создание бекапа списка аккаунтов завершено
JUQwJTlGJUQwJUJFJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTIwJUQwJUIxJUQwJUI1JUQwJUJBJUQwJUIwJUQwJUJGJUQwJUIwJTIwJUQwJUIyJUQxJThCJUQwJUIzJUQwJUJCJUQxJThGJUQwJUI0JUQwJUI4JUQxJTgyJTIwJUQwJUIyJUQwJUJFJUQxJTgyJTIwJUQxJTgyJUQwJUIwJUQwJUJBJTNB
jakonda1@jakondo.ru <><sn: Жаконда1><><displayName: Жаконда1> jakonda2@jakondo.ru <><sn: Жаконда2><><displayName: Жаконда2> jakonda@jakondo.ru <givenName: Иван><sn: Иванов><initials: Иванович><displayName: Иванов Иван Иванович> jakond@jakondo.ru <givenName: Петя><sn: Петечкин><initials: Петин><displayName: Петечкин Петя Петин>
Вот таким способом мы получили бекап всем имеющихся учетных записей, которые всегда можно будет восстановить, что ниже мы и рассмотрим…
Восстановление учетных записей из резервной копии
Создаем текстовый файл и делаем его исполняемым:
nano restore_accounts.sh sudo chmod +x restore_accounts.sh
JUQwJTkyJTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTgxJUQwJUJBJUQxJTgwJUQwJUI4JUQwJUJGJUQxJTgyJTIwJUQwJUIyJUQwJUJGJUQwJUI4JUQxJTgxJUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQxJTgzJUQxJThFJUQxJTg5JUQwJUI1JUQwJUI1JTIwKCVEMCVCMiUyMCVEMCVCRiVEMCVCMCVEMSU4MCVEMCVCMCVEMCVCQyVEMCVCNSVEMSU4MiVEMSU4MCVEMCVCMCVEMSU4NSUyMCVEMCVCRCVEMCVCMCVEMSU4MSVEMSU4MiVEMSU4MCVEMCVCRSVEMCVCNSVEMCVCQSUyMCVEMSU4MSVEMCVCQSVEMSU4MCVEMCVCOCVEMCVCRiVEMSU4MiVEMCVCMCUyMCVEMSU4MyVEMCVCQSVEMCVCMCVEMCVCNyVEMSU4QiVEMCVCMiVEMCVCMCVEMCVCNSVEMCVCQyUyMCVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCRCVEMSU4QiVEMCVCNSUyMCVEMSU4MSVEMCVCMiVEMCVCRSVEMCVCOCklM0E=
#!/bin/bash ##################### # Настройки скрипта # ##################### # Путь к месту бекапа списка пользователей Path="/home/jakonda/bkzm" # Название домена Domain="jakondo.ru" echo "#################################################################" echo "# Восстановление из резервной копии списка пользователей Zimbra #" echo "#################################################################" echo "" # Запрос ввода имени почтового ящика read -p "Введите за какое число восстановить аккаунты пользователей: " Date echo "Время начала восстановления аккаунтов - $(date +%T)" echo "" # Запоминаем время начала восстановление Begin_time=$(date +%s) # Проходимся по каждому аккаунту в списке и восстанавливаем его cat $Path"/"$Date".accounts.txt"| while read account; do # Отделяем имя аккаунта почты AC=$(echo $account | sed -r 's/ <.+//') # Отделяем Имя if Result=$(echo $account | grep 'givenName'); then GN=$(echo $account | sed 's|.*<givenName: ||'|sed -r 's/>.+//') else GN=$(echo "") fi # Отделяем Фамилия if Result=$(echo $account | grep 'sn'); then SN=$(echo $account | sed 's|.*<sn: ||'|sed -r 's/>.+//') else SN=$(echo "") fi # Отделяем Отчество if Result=$(echo $account | grep 'initials'); then IN=$(echo $account | sed 's|.*<initials: ||'|sed -r 's/>.+//') else IN=$(echo "") fi # Отделяем Отображаемое имя if Result=$(echo $account | grep 'displayName'); then DN=$(echo $account | sed 's|.*<displayName: ||'|sed -r 's/>.*//') else DN=$(echo) fi # Создаем почтовый аккаунт echo "Восстановление аккаунта $AC..." Result=$(/opt/zimbra/bin/zmprov ca $AC Aa1234567 displayName "$DN" givenName "$GN" sn "$SN" initials "$IN") if [ $? -eq 0 ]; then echo -n "$(tput hpa $(tput cols))$(tput cub 6) [OK]" echo else echo -n "$(tput hpa $(tput cols))$(tput cub 6) [FAIL]" 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 секунд"
В ходе выполнения скрипта, из списка бекапа аккаунтов разбирается каждая строка и при создании аккаунтов восстанавливаются данные такие как ФИО и отображаемое имя, по-умолчанию задается пароль Aa1234567. Пример вывода работы скрипта:
################################################################# # Восстановление из резервной копии списка пользователей Zimbra # ################################################################# Введите за какое число восстановить аккаунты пользователей: 28-01-2017 Время начала восстановления аккаунтов - 21:43:19 Восстановление аккаунта jakonda1@jakondo.ru...[OK] Восстановление аккаунта jakonda2@jakondo.ru...[OK] Восстановление аккаунта jakonda@jakondo.ru...[OK] Восстановление аккаунта jakond@jakondo.ru...[OK] Затрачено времени на восстановление аккаунтов : 0 час 0 минут 56 секунд
Таким способом мы удобно восстанавливаем почтовые аккаунты. Теперь рассмотрим как создавать резервные копии списков пользователей и так же их восстанавливать.
Резервное копирование списков рассылки
JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgyJUQwJUI1JUQwJUJBJUQxJTgxJUQxJTgyJUQwJUJFJUQwJUIyJUQxJThCJUQwJUI5JTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTIwJUQwJUI4JTIwJUQwJUI0JUQwJUI1JUQwJUJCJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI1JUQwJUIzJUQwJUJFJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQxJThGJUQwJUI1JUQwJUJDJUQxJThCJUQwJUJDJTNB
nano backup_lists.sh sudo chmod +x backup_lists.sh
JUQwJTkyJTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTgxJUQwJUJBJUQxJTgwJUQwJUI4JUQwJUJGJUQxJTgyJTIwJUQwJUIyJUQwJUJGJUQwJUI4JUQxJTgxJUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQxJTgzJUQxJThFJUQxJTg5JUQwJUI1JUQwJUI1JTIwKCVEMCVCMiUyMCVEMCVCRiVEMCVCMCVEMSU4MCVEMCVCMCVEMCVCQyVEMCVCNSVEMSU4MiVEMSU4MCVEMCVCMCVEMSU4NSUyMCVEMCVCRCVEMCVCMCVEMSU4MSVEMSU4MiVEMSU4MCVEMCVCRSVEMCVCNSVEMCVCQSUyMCVEMSU4MSVEMCVCQSVEMSU4MCVEMCVCOCVEMCVCRiVEMSU4MiVEMCVCMCUyMCVEMSU4MyVEMCVCQSVEMCVCMCVEMCVCNyVEMSU4QiVEMCVCMiVEMCVCMCVEMCVCNSVEMCVCQyUyMCVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCRCVEMSU4QiVEMCVCNSUyMCVEMSU4MSVEMCVCMiVEMCVCRSVEMCVCOCklM0E=
#!/bin/bash ##################### # Настройка скрипта # ##################### # Место где хранить бекапы Path="/home/jakonda/bkzm/lists" # Название домена Domain="jakondo.ru" # Текущая дата Current_date=$(date +%d-%m-%Y) # Временный файл для работы скрипта Temp=$Path"/temp" echo "##########################################" echo "# Резервное копирование списков рассылки #" echo "##########################################" echo "" echo "Время начала бекапа списков рассылки - $(date +%T)" # Запоминаем время начала бекапа Begin_time=$(date +%s) echo "" # Создаем катаолг под бекап на текущую дату mkdir -p $Path/$Current_date/ # Получаем списки рассылок в указанном домене echo "Получение списка рассылки в домене $Domain..." /opt/zimbra/bin/zmprov gadl > $Temp # Получаем адресатов в рассылках cat $Temp | while read accounts_list; do echo "Получение адресатов в рассылке $accounts_list..." /opt/zimbra/bin/zmprov gdl $accounts_list | grep zimbraMailForwardingAddress: | awk {'print $2'} > $Path/$Current_date/$accounts_list if [ $? -eq 0 ]; then echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]" echo else echo -n "$(tput hpa $(tput cols))$(tput cub 6)[FAIL]" echo fi done echo "Создание бекапа списков рассылки" # Подчищаем после выполнения скрипта rm -f $Temp # Вычисление времени работы бекапа списков рассылки 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 секунд"
В ходе выполнения скрипта обрабатываются все имеющиеся списки рассылок и каждая из список рассылок резервируется с их адресатами. Пример вывода работы скрипта:
########################################## # Резервное копирование списков рассылки # ########################################## Время начала бекапа списков рассылки - 20:28:08 Получение списка рассылки в домене jakondo.ru... Получение адресатов в рассылке test1@jakondo.ru... [OK] Получение адресатов в рассылке test2@jakondo.ru... [OK] Создание бекапа списков рассылки Затрачено времени на резервное копирование : 0 час 0 минут 19 секунд
JUQwJTkxJUQxJThCJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJTJDJTIwJUQwJUJCJUQwJUI1JUQwJUIzJUQwJUJBJUQwJUJFJTIwJUQwJUI4JTIwJUQwJUI4JUQwJUJEJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUIwJUQxJTgyJUQwJUI4JUQwJUIyJUQwJUJEJUQwJUJFJTIwJUQwJUJDJUQxJThCJTIwJUQwJUI3JUQwJUI0JUQwJUI1JUQwJUJCJUQwJUIwJUQwJUJCJUQwJUI4JTIwJUQxJTgwJUQwJUI1JUQwJUI3JUQwJUI1JUQxJTgwJUQwJUIyJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQwJUJBJUQwJUJFJUQwJUJGJUQwJUI4JUQwJUI4JTIwJUQxJTgxJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUJBJUQwJUJFJUQwJUIyJTIwJUQxJTgwJUQwJUIwJUQxJTgxJUQxJTgxJUQxJThCJUQwJUJCJUQwJUJBJUQwJUI4LiUyMCVEMCVBMiVEMCVCNSVEMCVCRiVEMCVCNSVEMSU4MCVEMSU4QyUyMCVEMSU4MCVEMCVCMCVEMCVCNyVEMCVCMSVEMCVCNSVEMSU4MCVEMCVCNSVEMCVCQyUyMCVEMCVCQSVEMCVCMCVEMCVCQSUyMCVEMCVCMiVEMCVCRSVEMSU4MSVEMSU4MSVEMSU4MiVEMCVCMCVEMCVCRCVEMCVCRSVEMCVCMiVEMCVCOCVEMSU4MiVEMSU4QyUyMCVEMCVCOCVEMCVCNyUyMCVEMSU4MCVEMCVCNSVEMCVCNyVEMCVCNSVEMSU4MCVEMCVCMiVEMCVCRCVEMCVCRSVEMCVCOSUyMCVEMCVCQSVEMCVCRSVEMCVCRiVEMCVCOCVEMCVCOCUyMCVEMSU4MSVEMCVCRiVEMCVCOCVEMSU4MSVEMCVCQSVEMCVCOCUyMCVEMSU4MCVEMCVCMCVEMSU4MSVEMSU4MSVEMSU4QiVEMCVCQiVEMCVCRSVEMCVCQS4=
Восстановление списков рассылки из резервной копии
JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgyJUQwJUI1JUQwJUJBJUQxJTgxJUQxJTgyJUQwJUJFJUQwJUIyJUQxJThCJUQwJUI5JTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTIwJUQwJUI4JTIwJUQwJUI0JUQwJUI1JUQwJUJCJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI1JUQwJUIzJUQwJUJFJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQxJThGJUQwJUI1JUQwJUJDJUQxJThCJUQwJUJDJTNB
nano restore_lists.sh sudo chmod +x restore_lists.sh
В созданный скрипт вписываем следующее (в параметрах настроек скрипта указываем данные свои):
#!/bin/bash ##################### # Настройки скрипта # ##################### # Путь к месту бекапа списка пользователей Path="/home/jakonda/bkzm/lists" # Название домена Domain="jakondo.ru" # Временный файл для работы скрипта Temp=$Path"/temp" echo "######################################################" echo "# Восстановление из резервной копии списков рассылки #" echo "######################################################" echo "" # Запрос даты, за какое число нужно восстановить бекап read -p "Введите дату за какое число восстановить из бекапа (прим. 01-01-1985): " Date # Проверим наличия бекапов за указанную дату if ! [ -d $Path/$Date ]; then echo 'Нет бекапов на указанную дату... Завершаем работу скрипта.' exit fi echo "Время начала восстановление списков рассылки - $(date +%T)" # Запоминаем время начала восстановления Begin_time=$(date +%s) # Восстанавливаем списки рассылок из бекапа for file in $Path/$Date/*; do Name=$(ls $file | sed -e 's/^.*\///') echo "Восстанавливаем список рассылки $Name" Result=$(/opt/zimbra/bin/zmprov cdl $Name) if [ $? -eq 0 ]; then echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]" echo echo "Восстановление участников рассылки $Name" FullName=$(ls $file) cat $FullName | while read account; do Result=$(/opt/zimbra/bin/zmprov adlm $Name $account) done echo else echo -n "$(tput hpa $(tput cols))$(tput cub 6)[FAIL]" 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 секунд"
JUQwJTkyJTIwJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI1JTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQxJTgxJUQwJUJBJUQxJTgwJUQwJUI4JUQwJUJGJUQxJTgyJUQwJUIwJTIwJUQwJUIyJUQwJUJFJUQxJTgxJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwJUQxJTgwJUQwJUIwJUQxJTgxJUQxJTgxJUQxJThCJUQwJUJCJUQwJUJBJUQwJUIwJTIwJUQwJUI4JUQwJUI3JTIwJUQxJTgwJUQwJUI1JUQwJUI3JUQwJUI1JUQxJTgwJUQwJUIyJUQwJUJEJUQwJUJFJUQwJUI5JTIwJUQwJUJBJUQwJUJFJUQwJUJGJUQwJUI4JUQwJUI4JTIwJUQwJUI4JTIwJUQwJUIyJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQwJUIyJTIwJUQwJUJEJUQwJUI1JUQwJUI1JTIwJUQxJTgzJUQxJTg3JUQwJUIwJUQxJTgxJUQxJTgyJUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUIyLiVDMiVBMCVEMCU5RiVEMSU4MCVEMCVCOCVEMCVCQyVEMCVCNSVEMSU4MCUyMCVEMCVCMiVEMSU4QiVEMCVCMiVEMCVCRSVEMCVCNCVEMCVCMCUyMCVEMSU4MCVEMCVCMCVEMCVCMSVEMCVCRSVEMSU4MiVEMSU4QiUyMCVEMSU4MSVEMCVCQSVEMSU4MCVEMCVCOCVEMCVCRiVEMSU4MiVEMCVCMCUzQQ==
###################################################### # Восстановление из резервной копии списков рассылки # ###################################################### Введите дату за какое число восстановить из бекапа (прим. 01-01-1985): 30-01-2017 Время начала восстановление списков рассылки - 22:56:19 Восстанавливаем список рассылки test1@jakondo.ru [OK] Восстановление участников рассылки test1@jakondo.ru Восстанавливаем список рассылки test2@jakondo.ru [OK] Восстановление участников рассылки test2@jakondo.ru Затрачено времени на восстановление списка рассылок: 0 час 0 минут 58 секунд
JUQwJTkyJUQwJUJFJUQxJTgyJTIwJUQxJTgyJUQwJUIwJUQwJUJBJUQwJUI4JUQwJUJDJTIwJUQxJTgxJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJFJUQwJUIxJUQwJUJFJUQwJUJDJTIwJUQwJUJDJUQxJThCJTIwJUQxJTgzJUQwJUI0JUQwJUJFJUQwJUIxJUQwJUJEJUQwJUJFJTIwJUQwJUI4JTIwJUQwJUI4JUQwJUJEJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUIwJUQxJTgyJUQwJUI4JUQwJUIyJUQwJUJEJUQwJUJFJTIwJUQwJUI0JUQwJUI1JUQwJUJCJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgwJUQwJUI1JUQwJUI3JUQwJUI1JUQxJTgwJUQwJUIyJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQwJUJBJUQwJUJFJUQwJUJGJUQwJUI4JUQwJUI4JTIwJUQwJUI4JTIwJUQwJUIyJUQwJUJFJUQxJTgxJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI4JUQwJUI3JTIwJUQwJUJEJUQwJUI4JUQxJTg1Lg==
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Может поправите некорректные символы > и т.п…
актуален ли скрипт для 8.7?
Не знаю, не пробовал для версии 8.7. В тестовых условиях попробуйте.
В скрипте Резервное копирование списка учетных записей
в /opt/zimbra/bin/zmprov gdl $accounts_list | grep zimbraMailForwardingAddress: | awk {‘print $2’} > $Path/$Current_date/$accounts_l$ ошибка
Копировал листинг из терминала, немного строка обрезалась, должно быть так /opt/zimbra/bin/zmprov gdl $accounts_list | grep zimbraMailForwardingAddress: | awk {‘print $2’} > $Path/$Current_date/$accounts_list
Исправил
Спасибо! Весьма полезные скрипты!
Было бы неплохо в скрипт «Резервное копирование списка учетных записей» вставить какой нить «прогресс», а то не совсем понятно, работает скрипт или завис, когда много почтовых ящиков!
Может быть по возможности свободного времени доработаю его, прикручу индикатор выполнения.