não sei ao certo, mas certamente algumas ferramentas como o 7-zip seriam capazes de compactar dados do STDIN, o que significa que você também poderia usar o primeiro estilo no Windows.
nickf
5
Eu mesmo estou olhando isso e um comentário dos documentos svnbook.red-bean.com/nightly/en/… é que você obterá uma saída muito grande do svnadmin dump, a menos que você use a opção --deltas.
Usando 7Zip: svnadmin dump repositorypath | "%ProgramFiles%\7-Zip\7z.exe" a backup.7z -sibackupname.svn Isso criará um arquivo chamado 'backup.7z' que contém um único arquivo, 'backupname.svn', que é a saída svnadmin dump.
Matt
4
@ Josh Stodola bash :for project in *; do svnadmin dump ${project} | gzip > /backuppath/${project}.svn.gz; done;
Você pode executar este comando a qualquer momento e fazer uma cópia segura do repositório, independentemente de outros processos estarem usando o repositório.
É claro que você pode ZIP (de preferência 7-Zip) a cópia de backup. IMHO É a mais simples das opções de backup: em caso de desastre, há pouco a fazer além de descompactá-lo de volta à posição.
@ Daremon: Eu sugiro que você leia as respostas às postagens às quais você vinculou, especificamente aquela que menciona o svnadmin dump não inclui os arquivos de controle do repositório.
Powerlord
perto corrida, mas, eu estou votando para o svnadmin dump depois de ler as respostas sugeridas por R. Bemrose
mobibob
O comando hotcopy não substitui nem incrementa os backups gerados. Então, se você está planejando para automatizá-lo no Windows usando agendador de tarefas olhada no seguinte arquivo de lote: cfchimp.com/wordpress/2008/05/...
Ryan Sampson
1
Uma palavra de alerta. Não copie a cópia espelhada de um repositório svnsync enquanto o svnsync estiver em execução! A cópia resultante pode estar corrompida. Veja este tópico para detalhes: subversion.open.collab.net/ds/…
zvolkov
24
Há um script hotbackup.py disponível no site do Subversion, bastante útil para automatizar backups.
Eu uso svnsync , que configura um servidor remoto como um espelho / escravo. Tivemos um servidor inoperante há duas semanas e eu pude mudar o escravo para a posição principal com bastante facilidade (só foi necessário redefinir o UUID no repositório escravo para o original).
Outro benefício é que a sincronização pode ser executada por um intermediário, e não como uma tarefa em qualquer servidor. Eu tive um cliente para duas VPNs sincronizar um repositório entre eles.
então sincroniza as versões repo mais recentes entre os dois, obviamente?
PositiveGuy
1
Mesmo estando no título, não sei se chamaria de "sincronização". É realmente um backup, onde ele faz revisões no mestre e as coloca no escravo. Se você fizesse modificações no escravo, elas quebrariam a "sincronização" ou resultariam em loucura. O uso pretendido da ferramenta é criar espelhos externos, somente leitura, mas ele faz um trabalho admirável ao criar um servidor de backup.
18119 Tom Mayfield
1
O benefício do svnsync é que você pode executar isso com muita frequência. A cada dez minutos ou mesmo a cada confirmação (usando um gancho). O benefício disso é que é possível reduzir a possível perda de dados que você obteria entre o último backup e a perda do repositório ativo.
Esse subcomando faz um backup "quente" completo do seu repositório, incluindo todos os ganchos, arquivos de configuração e, é claro, arquivos de banco de dados.
Portanto, se você tiver permissão para parar o servidor, faça-o e apenas copie o repositório, com algum script ou uma ferramenta de backup. O Cobian Backup se encaixa bem aqui, pois pode parar e iniciar serviços automaticamente, e pode fazer backups incrementais, para que você faça backup apenas de partes do repositório que foram alteradas recentemente (útil se o repositório for grande e você estiver fazendo backup em local remoto) )
Exemplo:
Instale o Cobian Backup
Adicione uma tarefa de backup:
Defina a origem para a pasta do repositório (por exemplo C:\Repositories\),
Adicionar evento de pré-backup "STOP_SERVICE" VisualSVN,
Defina outras opções conforme necessário. Criamos backups incrementais, incluindo remoção de antigos, agendamento de backup, destino, compactação incl. divisão de arquivos etc.
existem 2 métodos principais para fazer backup de um servidor svn, primeiro é o hotcopy que criará uma cópia dos arquivos do seu repositório, o principal problema com esta abordagem é que ele salva dados sobre o sistema de arquivos subjacente, para que você possa ter algumas dificuldades ao tentar repostore esse tipo de backup em outro tipo de servidor svn ou em outra máquina. existe outro tipo de backup chamado dump, esse backup não salva nenhuma informação do sistema de arquivos subjacente e é potável em qualquer tipo de servidor SVN baseado no subversion tigiris.org.
sobre a ferramenta de backup, você pode usar a ferramenta svnadmin (é possível fazer hotcopy e dump) no prompt de comando, esse console reside no mesmo diretório em que o servidor svn mora ou você pode pesquisar no google por ferramentas de backup svn.
minha recomendação é que você faça os dois tipos de backup e os tire do escritório para sua conta de e-mail, serviço amazon s3, ftp ou azure services, dessa forma você terá um backup seguro sem ter que hospedar o servidor svn em algum lugar fora seu escritório.
Esta ferramenta simples permite fazer um backup de despejo de um repositório de subversão local e remoto. O software funciona da mesma maneira que o "svnadmin", mas não é uma interface gráfica sobre ele. Em vez disso, use diretamente as bibliotecas do subversion para permitir criar dump no modo autônomo sem nenhuma outra ferramenta adicional.
Obrigado por compartilhar isso, faz exatamente como indicado.
Ed DeGagne 11/03/16
3
Gosto de copiar todo o diretório repo para o meu local de backup. Dessa forma, se algo acontecer, você pode simplesmente copiar o diretório de volta e estar pronto para ir imediatamente.
Apenas certifique-se de preservar as permissões, se necessário. Normalmente, isso é apenas uma preocupação em máquinas Linux.
isso não é exatamente seguro se alguém fizer um commit durante uma operação de cópia - isso aconteceu comigo mesmo com apenas 4 pessoas tendo acesso ao repositório e usando-o com pouca frequência. Veja a resposta de Duncan sobre o uso de hotcopy.
nickf
No entanto, se você estiver trabalhando completamente sozinho, presumo que essa seja uma maneira segura de fazer backup de um repositório? Eu uso o subversion para meus projetos pessoais, e é isso que estou fazendo atualmente.
Andrew Garrison
3
Para repositórios hospedados, você pode usar o svn versão 1.7 svnrdump, que é análogo aos svnadmin dumprepositórios locais. Este artigo fornece uma boa explicação, que se resume basicamente a:
Se você estiver usando o formato do repositório FSFS (o padrão), poderá copiar o próprio repositório para fazer um backup. Com o sistema BerkleyDB mais antigo, o repositório não é independente de plataforma e você geralmente deseja usar o dump svnadmin.
@echo off
set hour=%time:~0,2%
if "%hour:~0,1%"==" " set hour=0%time:~1,1%
set folder=%date:~6,4%%date:~3,2%%date:~0,2%%hour%%time:~3,2%
echo Performing Backup
md "\\HOME\Development\Backups\SubVersion\%folder%"
svnadmin dump "C:\Users\Yakyb\Desktop\MainRepositary\Jake" | "C:\Program Files\7-Zip\7z.exe" a "\\HOME\Development\Backups\SubVersion\%folder%\Jake.7z" -sibackupname.svn
Este é o arquivo em lotes que eu tenho executando que executa meus backups
Isso leva tempo e diz que está buscando os logs do repositório. Ele cria um conjunto de arquivos dentro C:\Documents and Settings\nverma\.svk\local.
Para atualizar este repositório local com o último conjunto de alterações do remoto, basta executar o comando anterior periodicamente.
Agora você pode jogar com seu repositório local (/home/user/.svk/local neste exemplo) como se fosse um repositório SVN normal!
O único problema com essa abordagem é que o repositório local é criado com uma revisão incremental pela revisão real no repositório remoto. Como alguém escreveu:
O comando svk miror gera uma confirmação no repositório recém-criado. Portanto, todas as confirmações criadas pela sincronização subsequente terão números de revisão incrementados em um em comparação com o repositório público remoto.
Mas isso foi bom para mim, pois eu só queria um backup do repositório remoto de tempos em tempos, nada mais.
Verificação:
Para verificar, use o cliente SVN com o repositório local como este:
svn checkout "file:///C:/Documents and Settings\nverma/.svk/local/" <local-dir-path-to-checkout-onto>
Este comando então faz check-out da revisão mais recente do repositório local. No final, diz Checked out revision N. Essa Nfoi mais uma que a revisão real encontrada no repositório remoto (devido ao problema mencionado acima).
Para verificar se o svk também trouxe todo o histórico, o check-out do SVN foi executado com várias revisões mais antigas usando -r2, 10, 50 etc. Em seguida, os arquivos <local-dir-path-to-checkout-onto>foram confirmados como sendo dessa revisão.
No final, zip o diretório C:/Documents and Settings\nverma/.svk/local/e armazene o zip em algum lugar. Continue fazendo isso regularmente.
como já foi dito, o hot-backup.py da equipe do Subversion possui alguns recursos interessantes svnadmin hotcopy
Eu executo uma tarefa agendada em um script python que se aplica a todos os meus repositórios na máquina e usa o hotbackup para manter vários dias de hotcopies (paranóico de corrupção) e svnadmin svndumpem uma máquina remota. A restauração é realmente fácil a partir disso - até agora.
Respostas:
Você pode usar algo como (Linux):
Como o Windows não suporta o GZip, é apenas:
fonte
svnadmin dump repositorypath | "%ProgramFiles%\7-Zip\7z.exe" a backup.7z -sibackupname.svn
Isso criará um arquivo chamado 'backup.7z' que contém um único arquivo, 'backupname.svn', que é a saídasvnadmin dump
.for project in *; do svnadmin dump ${project} | gzip > /backuppath/${project}.svn.gz; done;
Usamos svnadmin hotcopy, por exemplo:
Conforme o livro :
É claro que você pode ZIP (de preferência 7-Zip) a cópia de backup. IMHO É a mais simples das opções de backup: em caso de desastre, há pouco a fazer além de descompactá-lo de volta à posição.
fonte
Há um script hotbackup.py disponível no site do Subversion, bastante útil para automatizar backups.
http://svn.apache.org/repos/asf/subversion/trunk/tools/backup/hot-backup.py.in
fonte
Aqui está um script Perl que irá:
O script:
Origem do script e mais detalhes sobre o racional para esse tipo de backup.
fonte
Eu uso svnsync , que configura um servidor remoto como um espelho / escravo. Tivemos um servidor inoperante há duas semanas e eu pude mudar o escravo para a posição principal com bastante facilidade (só foi necessário redefinir o UUID no repositório escravo para o original).
Outro benefício é que a sincronização pode ser executada por um intermediário, e não como uma tarefa em qualquer servidor. Eu tive um cliente para duas VPNs sincronizar um repositório entre eles.
fonte
svnadmin hotcopy
fonte
svnbackup no Google Code, um aplicativo de console .NET.
fonte
Você pode criar um backup de repositório ( dump ) com
svnadmin dump
.Você pode importá-lo usando
svnadmin load
.Referência detalhada no SVNBook: "Migração de dados do repositório usando svnadmin"
fonte
Basicamente, é seguro copiar a pasta do repositório se o servidor svn estiver parado. (fonte: https://groups.google.com/forum/?fromgroups#!topic/visualsvn/i_55khUBrys%5B1-25%5D )
Portanto, se você tiver permissão para parar o servidor, faça-o e apenas copie o repositório, com algum script ou uma ferramenta de backup. O Cobian Backup se encaixa bem aqui, pois pode parar e iniciar serviços automaticamente, e pode fazer backups incrementais, para que você faça backup apenas de partes do repositório que foram alteradas recentemente (útil se o repositório for grande e você estiver fazendo backup em local remoto) )
Exemplo:
Adicione uma tarefa de backup:
Defina a origem para a pasta do repositório (por exemplo
C:\Repositories\
),Adicionar evento de pré-backup
"STOP_SERVICE"
VisualSVN,Adicionar evento pós-backup,
"START_SERVICE"
VisualSVN,Defina outras opções conforme necessário. Criamos backups incrementais, incluindo remoção de antigos, agendamento de backup, destino, compactação incl. divisão de arquivos etc.
Lucro!
fonte
existem 2 métodos principais para fazer backup de um servidor svn, primeiro é o hotcopy que criará uma cópia dos arquivos do seu repositório, o principal problema com esta abordagem é que ele salva dados sobre o sistema de arquivos subjacente, para que você possa ter algumas dificuldades ao tentar repostore esse tipo de backup em outro tipo de servidor svn ou em outra máquina. existe outro tipo de backup chamado dump, esse backup não salva nenhuma informação do sistema de arquivos subjacente e é potável em qualquer tipo de servidor SVN baseado no subversion tigiris.org.
sobre a ferramenta de backup, você pode usar a ferramenta svnadmin (é possível fazer hotcopy e dump) no prompt de comando, esse console reside no mesmo diretório em que o servidor svn mora ou você pode pesquisar no google por ferramentas de backup svn.
minha recomendação é que você faça os dois tipos de backup e os tire do escritório para sua conta de e-mail, serviço amazon s3, ftp ou azure services, dessa forma você terá um backup seguro sem ter que hospedar o servidor svn em algum lugar fora seu escritório.
fonte
Aqui uma ferramenta GUI do Windows para fazer um despejo de repositórios de subversão locais e remotos:
https://falsinsoft-software.blogspot.com/p/svn-backup-tool.html
A descrição da ferramenta diz:
Esta ferramenta simples permite fazer um backup de despejo de um repositório de subversão local e remoto. O software funciona da mesma maneira que o "svnadmin", mas não é uma interface gráfica sobre ele. Em vez disso, use diretamente as bibliotecas do subversion para permitir criar dump no modo autônomo sem nenhuma outra ferramenta adicional.
Espero que esta ajuda ...
fonte
Gosto de copiar todo o diretório repo para o meu local de backup. Dessa forma, se algo acontecer, você pode simplesmente copiar o diretório de volta e estar pronto para ir imediatamente.
Apenas certifique-se de preservar as permissões, se necessário. Normalmente, isso é apenas uma preocupação em máquinas Linux.
fonte
Para repositórios hospedados, você pode usar o svn versão 1.7
svnrdump
, que é análogo aossvnadmin dump
repositórios locais. Este artigo fornece uma boa explicação, que se resume basicamente a:Depois de baixar o arquivo de despejo, você pode importá-lo localmente
ou faça o upload para o host de sua escolha.
fonte
Se você estiver usando o formato do repositório FSFS (o padrão), poderá copiar o próprio repositório para fazer um backup. Com o sistema BerkleyDB mais antigo, o repositório não é independente de plataforma e você geralmente deseja usar o dump svnadmin.
O tópico de documentação do svnbook para backup recomenda o
svnadmin hotcopy
comando, pois ele resolverá problemas como arquivos em uso e outros.fonte
Este é o arquivo em lotes que eu tenho executando que executa meus backups
fonte
Para a solução de backup diário e completo, use os scripts de backup SVN aqui .
fonte
Eu compilei as etapas que segui com o objetivo de fazer um backup do repositório SVN remoto do meu projeto.
Isso leva tempo e diz que está buscando os logs do repositório. Ele cria um conjunto de arquivos dentro
C:\Documents and Settings\nverma\.svk\local
.Para atualizar este repositório local com o último conjunto de alterações do remoto, basta executar o comando anterior periodicamente.
Agora você pode jogar com seu repositório local (
/home/user/.svk/local
neste exemplo) como se fosse um repositório SVN normal!O único problema com essa abordagem é que o repositório local é criado com uma revisão incremental pela revisão real no repositório remoto. Como alguém escreveu:
Mas isso foi bom para mim, pois eu só queria um backup do repositório remoto de tempos em tempos, nada mais.
Verificação:
Para verificar, use o cliente SVN com o repositório local como este:
Este comando então faz check-out da revisão mais recente do repositório local. No final, diz
Checked out revision N
. EssaN
foi mais uma que a revisão real encontrada no repositório remoto (devido ao problema mencionado acima).Para verificar se o svk também trouxe todo o histórico, o check-out do SVN foi executado com várias revisões mais antigas usando
-r
2, 10, 50 etc. Em seguida, os arquivos<local-dir-path-to-checkout-onto>
foram confirmados como sendo dessa revisão.No final, zip o diretório
C:/Documents and Settings\nverma/.svk/local/
e armazene o zip em algum lugar. Continue fazendo isso regularmente.fonte
como já foi dito, o hot-backup.py da equipe do Subversion possui alguns recursos interessantes
svnadmin hotcopy
Eu executo uma tarefa agendada em um script python que se aplica a todos os meus repositórios na máquina e usa o hotbackup para manter vários dias de hotcopies (paranóico de corrupção) e
svnadmin svndump
em uma máquina remota. A restauração é realmente fácil a partir disso - até agora.fonte
1.1 Criar despejo a partir do repositório SVN (Subversion)
Exemplo real
1.2 Despejo criado por Gzip
Exemplo real
1.3 Dump SVN e Dump Gzip com um liner
Exemplo real
Como fazer backup (despejo) e restaurar (carregar) o repositório SVN (Subversion) no Linux.
Ref: svn subversion backup andrestore
fonte