20 сентября 2012 г.

Backup Jira своими руками

Зачем нужны архивные копии знают все, а вот то, что хранить их лучше на отдельном компьютере и неплохо бы территориально разнесенным с основным задумывают тогда, когда ничего уже исправить нельзя (кому эта тема интересна рекомендую почитать что-то про DRP).

Разговор у нас сегодня будет о другом - более прикладном направлении. У вас есть Atlassian Jira, которая "складывает" backup'ы на локальный диск, а Вы их хотите обезопасить и "перетащить" на другой компьютер (для тех кто не знает, как настроить в Jira локальный backup - читать здесь).

Общий подход

Предполагаем, что на обоих компьютерах у Вас Linux ;) и для достижения заданной цели мы будем использовать правоверный rsync.

Мы будем использовать т.н. pool подход (т.е. с mainserver.com мы будем "тянуть" данные на backup.com, можно еще push'ить - т.е. в обратную сторону, "запихивать"). 
  1. Логинимся на backup.com сервер и умеждаемся что user@mainserver.com работает и требует пароля.
  2. Настраиваем ssh так, чтобы при заходе с user@backup.com на user@mainserver.com пароль не спрашивали (я про RSA ключи).
  3. Создаем на backup.com выполняемый скрипт примерно такого содержимого и кладем его  в файл /path/2/backup_jira
    rsync -avz user@mainserver.com:/path/to/backups /backup
  4. Если синхронизировать нужно несколько каталогов, для каждого из них в файле из пункта 3 должна присутствовать отдельная строка
  5. "Вешаем" выполнение этого файла по расписанию. Для этого логинимся на backup.com как  user@backup.com и выполняем
    $ crontab -e
  6. Указываем время когда, нужно выполнять скрипт из пункта 3. У меня это выглядит примерно так:
    0 6 * * * /path/2/backup_jira
    Т.е. выполнять ежедневно в 6 утра. Ссылка на синтаксис формата времени cron'a.
  7. Проверяем :)
  8. Да, совсем забыл - лог файлы "приедут" вам по почте по адресу user@backup.com (для тех кто не знает чем почитать локально почту на Linux'е - смотрите на mutt).
Из полезного (на Англ.):
  1. Ссылка на настройку всего вышесказанного под Ubuntu (в ней все делается по технологии push и у человека не работает crontab -e).
  2. Работа с cron'ом для Suse (настройка crontab -e, удаление задач и т.д.).

Особенности Jira

Важно помнить, что в backup'ы Jira не попадают присоединенные файлы - они "болтаются" отдельно на диске. Т.е. о них нужно не забыть при backup'е. К сожалению, Jira сохраняет названия файлов в UTF-8 кодировке. Что это значит? Из под Linux'a у меня всегда названия файла, содержащие не Ansi символы (те же русские буквы) выглядят знаками вопроса -  ????????. Причем из под Jira буквы русские и все ОК. После переноса rsync'ом, ftp или еще как-то между идентичными ОС, эти данные скорее всего перенесутся корректно (проверяли Linux-Linux rsync и wget - все ОК), а вот Linux-Windows уже проблема. В Windows, как вы знаете ? - зарезервированный символ скопировать такие файлы не удастся. Не поможет вам и zip (он названия файлов в Ansi преобразовывает), а вот 7zip - самое то (а у него названия файлов в UTF-8 по умолчанию). Архивируйте данные 7zip'ом или p7zip'ом и спокойно переносите такие вот файлы между Linux и Windows. 

К слову, Linux'овские знаки вопроса в названиях файлов  в Windows становятся подчерками. Причем если после этого файлы вида ___ "подложить" в Windows обратно Jira, она их опознает как "свои" под Windows и работает с ними "на ура".

Комментариев нет:

Отправить комментарий