Мы используем отдельные ПРОФ экземпляры в качестве нашей системы заявок для многих проектов, и их необходимо перемещать с места несколько раз в день для аварийного восстановления.
Как лучше всего добиться этого? Есть что-то похожее на svnsync для подрывной деятельности?
Для полного восстановления среды trac вам потребуются следующие вещи:
В случае стандартной установки (с 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 как серверную часть (настройка по умолчанию), вы можете просто скопировать файл в горячем режиме. Размер файла (по крайней мере, для нас) настолько мал, что у нас никогда не было проблем с его согласованностью.