Backup pela rede

Iniciado por evefuji, 23 de Outubro de 2011, 13:53

tópico anterior - próximo tópico

evefuji

Olá,

Procurei na net e não achei nada a respeito (talvez não tivesse encontrado as palavras certas), mas o meu problema é o seguinte:

Eu tenho um servidor com linux que preciso fazer o backup, mas agora está com pouco espaço em disco para eu gerar o zip, preciso saber 2 coisas.

A primeira, é como posso gerar um zip mandando direto pela rede (posso acessar o servidor por ssh e sftp), e a segunda, é como posso filtrar para colocar no zip somente arquivos de uma pasta com data maior que uma data específica. Alguém sabe?

Antes do problema do espaço, estava usando o zip -r pasta pasta para gerar o zip e depois transferir pela rede.

zekkerj

A questão central é: transferir pela rede pra onde? Pra outra máquina na mesma rede local, ou pra uma máquina em um destino remoto?

Uma sugestão alternativa ao tipo de "backup" que você quer fazer: use um sistema de armazenamento na nuvem, tipo Dropbox ou Ubuntu One.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

evefuji

pela internet, acesso o servidor por ssh e queria alguma forma de transferir direto, por exemplo, um zip por scp sem armazenar em disco (no máximo um buffer)

zekkerj

Se você usar o tar, em vez do zip, pode jogar o fluxo compactado pra saída padrão. Juntando isso com uma linha de comando bem montada, pode usar pra abrir um acesso remoto pro seu servidor e jogar pra um arquivo local.

Se eu fosse fazer o bacalhau, faria assim: criaria um script "remoto.sh" com o comando "ssh servidor tar cvzf - /caminho/dos/arquivos". Depois executaria esse script com a linha "./remoto.sh > backup-remoto.tar.gz".

Com um pouquinho mais de elaboração dá pra fazer até o comando ssh não pedir senha, com o uso de chaves de criptografia.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

evefuji

Citação de: zekkerj online 24 de Outubro de 2011, 11:13
Se você usar o tar, em vez do zip, pode jogar o fluxo compactado pra saída padrão. Juntando isso com uma linha de comando bem montada, pode usar pra abrir um acesso remoto pro seu servidor e jogar pra um arquivo local.

Se eu fosse fazer o bacalhau, faria assim: criaria um script "remoto.sh" com o comando "ssh servidor tar cvzf - /caminho/dos/arquivos". Depois executaria esse script com a linha "./remoto.sh > backup-remoto.tar.gz".

Com um pouquinho mais de elaboração dá pra fazer até o comando ssh não pedir senha, com o uso de chaves de criptografia.
mas dessa forma não vai primeiro transferir e depois compactar? não tem como compactar primeiro e depois transferir?

Estou pensando em fazer um código java que envia pelo servidor, se não tiver nada pronto. (mas isso teria que ficar para depois do mês que vem, por causa do tempo)

strago

se voce tem acesso por ssh provavelmente também tem acesso a sftp, então utilize o filezilla e corra pro abraço.

Ou utilize o rsync, crie um servidor rsync no seu pc ou onde quer que você deseje jogar seu backup e por ssh, utilize o rsync para se conectar ao seu servidor rsync e enviar os arquivos/pastas.

zekkerj

Citarmas dessa forma não vai primeiro transferir e depois compactar?
Não, vai primeiro compactar depois transferir.

CitarEstou pensando em fazer um código java que envia pelo servidor, se não tiver nada pronto. (mas isso teria que ficar para depois do mês que vem, por causa do tempo)
Nossa, código Java? Pra quê isso amigo... isso se resolve com Shell Script.
Sem falar que se resolveria ainda mais fácil com um armazenamento online.

Citação de: stragoOu utilize o rsync, crie um servidor rsync no seu pc ou onde quer que você deseje jogar seu backup e por ssh, utilize o rsync para se conectar ao seu servidor rsync e enviar os arquivos/pastas.
O rsync é uma boa alternativa, mas ele não vai compactar; vai apenas espelhar as pastas. Mas pode compactar a comunicação (opção -z), o que pode dar uma boa acelerada nas coisas. Não é necessário trabalhar com ele em modo servidor, vc pode iniciá-lo a qualquer momento em qualquer das duas pontas.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

evefuji

Citação de: zekkerj online 24 de Outubro de 2011, 12:28
Citarmas dessa forma não vai primeiro transferir e depois compactar?
Não, vai primeiro compactar depois transferir.

CitarEstou pensando em fazer um código java que envia pelo servidor, se não tiver nada pronto. (mas isso teria que ficar para depois do mês que vem, por causa do tempo)
Nossa, código Java? Pra quê isso amigo... isso se resolve com Shell Script.
Sem falar que se resolveria ainda mais fácil com um armazenamento online.

Citação de: stragoOu utilize o rsync, crie um servidor rsync no seu pc ou onde quer que você deseje jogar seu backup e por ssh, utilize o rsync para se conectar ao seu servidor rsync e enviar os arquivos/pastas.
O rsync é uma boa alternativa, mas ele não vai compactar; vai apenas espelhar as pastas. Mas pode compactar a comunicação (opção -z), o que pode dar uma boa acelerada nas coisas. Não é necessário trabalhar com ele em modo servidor, vc pode iniciá-lo a qualquer momento em qualquer das duas pontas.
sobre o código java, é que já tenho aplicação java no glassfish, é mais prático eu colocar um botão de backup e mandar junto com um dump da base de dados. Além de eu ter mais afinidade com código java que shellscript.

Sobre o rsync, pode ser uma alternativa, o problema é que muitas conexões do mesmo cliente (se eu transferir arquivo a arquivo pelo sftp, por exemplo) o firewall bloqueia meu ip.