Скрипт определения названия агентов подключенных к Asterisk
Небольшой скрипт на bash
для определения названия агентов подключенных к Asterisk. По работе было необходимо, но решил оставить это здесь, вдруг кому тоже пригодится.
Небольшой скрипт на bash
для определения названия агентов подключенных к Asterisk. По работе было необходимо, но решил оставить это здесь, вдруг кому тоже пригодится.
Разберем как делать резервные копии базы данных Redmine, а так же прикрепленных файлов. Реализовывать резервное копирование будем с помощью bash-скрипта.
Разберем как делать резервные копии имеющихся Subversion (SVN) репозиториев в Linux среде. Все ниже описанное производилось на Debian 8 Jessie.
Создаем резервную копию указанного репозитория:
sudo svnadmin dump /path/to/repository > svnexport.dump
Создаем резервную копию указанного репозитория и сжимаем его:
sudo svnadmin dump /path/to/repository | gzip > svnexport.dump.gz
Для того чтобы автоматизировать процесс резервирования всех имеющихся репозиториев, создадим скрипт, который будет выполнять эту задачу. Скрипт с коментариями, разобратся в нем не составит труда:
#!/bin/bash # 06/01/2018 Jakonda (http://jakondo.ru) # Резервное копирование репозиториев (SVN) PATH_REPO="/var/svn/" LOCAL_DIR="/srv/backups/svn" EXPIRATION_DAYS=28 DATE=$(date +"%y_%m_%d") # Создаем каталог для размещения бекапов, если он не создан if ! [ -d $LOCAL_DIR ]; then mkdir $LOCAL_DIR fi # Создаем каталог с текущей датой mkdir -p $LOCAL_DIR/$DATE # Создание дампа всех репозиториев cd $PATH_REPO for REPO in *; do test -d "$REPO" && /usr/bin/svnadmin dump $REPO | gzip > $LOCAL_DIR/$DATE/$REPO.dump.gz done # Удаление старых резервных копий find $LOCAL_DIR* -mtime +${EXPIRATION_DAYS} -exec rm {} \; # Удаление пустых каталогов find $LOCAL_DIR* -type d -empty -exec rmdir {} \;
Недавно появилась необходимость в написании bash скрипта, по автоматизации процесса создания резервной копии CRM vTiger системы. CRM система развернута на CentOS 5.10 (Final) и соответственно скрипт будет писаться на этой же системе. Написанный скрипт я для удобства расписал комментариями, поэтому если что по прошествии времени разобраться в нем не составит труда.
Задачи скрипта:
Получившийся скрипт разделен на две части. Первая часть скрипта, это задание переменных, необходимых для работы. Вторая часть, это непосредственно выполнение поставленных задач.
Скрипт предусматривает два варианта на выбор, в каком месте размещать резервную копию.
Перед началом работы скрипта, пройдитесь по его настройкам и измените параметры под себя. Ниже представлен листинг скрипта.
Рассмотрим как делать резервные копии списка учетных записей, а так же списков рассылки. Данный бекап может пригодится, в случае переноса почтового сервера на другую машину, да и в целом на случай непредвиденного сбоя, всегда можно будет восстановить быстро как учетные записи, так и группы рассылки.
Итак мы имеем развернутый по этой статье почтовый сервер Zimbra Collaboration 8.6
на Ubuntu 14.04 Trusty Tahr. Для создания бекапа данных мы будем использовать bash скрипты.
Создаем текстовый файл и делаем его исполняемым:
nano backup_accounts.sh sudo chmod +x backup_accounts.sh
В созданный скрипт вписываем следующее (в параметрах настроек скрипта указываем данные свои):
В этой статье мы разбирали как развернуть 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
Появилась необходимость воспользоваться таким сервисом как «Почта для домена
» от Яндекса, а именно нужно было как то с минимизацией затраты жизненных ресурсов проработать скрипт по массовому созданию почтовых ящиков и заполнения их профилей.
Для управления почтой Яндекс предоставляет API Почты для домена (подробней про API можно почитать в официальной документации), вот им мы как раз и воспользуемся для реализации нашей задачи.