Назад | Перейти на главную страницу

Как сделать резервную копию моих установок TRAC?

Мы используем отдельные ПРОФ экземпляры в качестве нашей системы заявок для многих проектов, и их необходимо перемещать с места несколько раз в день для аварийного восстановления.

Как лучше всего добиться этого? Есть что-то похожее на svnsync для подрывной деятельности?

Для полного восстановления среды trac вам потребуются следующие вещи:

  • резервная БД;
  • резервное копирование файлов конфигурации;
  • резервное копирование wiki-файлов (html и вложения);
  • резервное копирование файлов паролей, если вы используете htpasswd auth;
  • дополнительные плагины (даже если они доступны для загрузки, я бы сделал их резервную копию для более быстрого восстановления);

В случае стандартной установки (с SQLite в качестве бэкэнда BD) это означает, что все, что вам нужно для резервного копирования, - это содержимое установочного каталога trac.

Также было бы полезно создать список всех пакетов Python, которые необходимо установить с помощью easy_install.

Я использовал сценарий для безопасного резервного копирования SVN и полного экземпляра Trac в файл .tar.gz. Оттуда его можно, как обычно, создать резервную копию с другими файлами.

#!/bin/sh

DATE=`date +%F-%H%M%S`
nice svnadmin dump /var/svn/trac.example.com > dump.$DATE.svn
nice trac-admin trac.example.com hotcopy trac.example.com-$DATE.trac

# take the SVN dump, and trac hotcopy, put into a dated TGZ anc copy to /backup...    
nice tar czf svn-trac.$DATE.tar.gz  backupTrac.sh startTracd.sh trac.htdigest \
           trac.example.com-$DATE.trac dump.$DATE.svn && \
   cp svn-trac.$DATE.tar.gz /backup/trac/ &&
   rm -rf trac.example.com-$DATE.trac dump.$DATE.svn

Вы можете взглянуть на TracBackup:

Поскольку Trac использует серверную часть базы данных, требуется дополнительная осторожность для безопасного создания резервной копии среды проекта. К счастью, в trac-admin есть команда для упрощения резервного копирования: hotcopy.

Примечание: Trac использует номенклатуру горячих копий, чтобы соответствовать номенклатуре Subversion, чтобы упростить запоминание при управлении серверами Trac и Subversion.

Если вы используете sqlite как серверную часть (настройка по умолчанию), вы можете просто скопировать файл в горячем режиме. Размер файла (по крайней мере, для нас) настолько мал, что у нас никогда не было проблем с его согласованностью.