Назад |
Перейти на главную страницу
как сделать резервную копию svn удаленно без локальной копии
У меня есть сервер подрывной деятельности, на котором не хватает диска. Я хотел бы заархивировать один из более крупных репозиториев, чтобы освободить место, поэтому мне нужно сделать полную резервную копию файлов репозитория на удаленном сервере. К сожалению, репо довольно велико, что ограничивает несколько простых вариантов:
- Я не могу использовать svn dump или svn hotcopy, потому что недостаточно локального хранилища для полной копии репозитория.
- Я могу использовать rsync, но сервер svn использует более старую базу данных Berkeley, и, похоже, это может создать поврежденную резервную копию. репо активно не используется, но возможно, что кто-то все еще изменяет его, пока работает rsync. остановка службы SVN в этом случае не лучший вариант, поскольку сервер интенсивно используется.
- В прошлом я использовал утилиту под названием rsvndump, и мой опыт показывает, что, хотя она была бы идеальной для этой ситуации, она имеет тенденцию преждевременно и постоянно умирать в больших репозиториях, в результате чего архив становится непригодным для использования.
- svnsync кажется разумным, но потребует дополнительных действий по настройке на удаленном сервере, и кажется, что архив несколько хрупок по сравнению с фактическим дампом данных. это также кажется излишним для того, что по сути является одноразовой задачей.
Я ищу, есть ли способ запустить svndump или hotcopy через rsync или ssh pipe, чтобы сделать «локальный» архив на удаленном хосте. Крайне важно, чтобы резервная копия была действительной, так как она понадобится мне для восстановления, как только проблема с дисковым пространством будет решена.
Я не могу использовать svn dump или svn hotcopy, потому что недостаточно локального хранилища для полной копии репозитория.
В svnadmin dump
команда отправляет вывод в стандартный вывод. Было бы тривиально сделать что-то вроде ssh svn-server.example.org svnadmin dump > /tmp/svn_backup
. Вывод дампа будет существовать на компьютере, с которого вы запустили SSH, а не на сервере. Вам не потребуется дополнительное место на сервере SVN.